Post

Replies

Boosts

Views

Activity

Scroll two lists synchronously
I have two lists side-by-side. I want to scroll any one of the lists, and the other one can scroll synchronously. Is there any way to achieve the effect? Any help will be appreciated. struct ScrollTwoListsSynchronously: View {     let dataSet = [1,2,3,4,5]     var body: some View {         HStack{             List{                 ForEach(dataSet,id:\.self){data in                     Text(String(data))                 }             }             .listStyle(PlainListStyle())             List{                 ForEach(dataSet,id:\.self){data in                     Text(String(data))                 }             }             .listStyle(PlainListStyle())         }     } }
0
0
462
May ’22
Invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific
I make a toggle to control a textfield in a form. When I run it, I get a piece of warning: invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution What could I do to fix it? What's the harm if it's not fixed( App crashes, or...?). Any help will be appreciated. struct ContentView: View {     @State private var toggle1 = true     @State private var str1 = "..."     var body: some View {         Form{             Section{                 Toggle(isOn: $toggle1, label: {                     Text("Toggle 1")})             }             Section{                     if toggle1{                         HStack{                             Text("Toggle 1")                             TextField("...", text: $str1)                         }                     }             }             .textFieldStyle(RoundedBorderTextFieldStyle())         }     } }
0
1
1k
Jan ’22
debug problem in Xcode13
struct ContentView: View {     @State private var num = 0          var body: some View {         VStack{         Text(String(num))             .padding()         Button(action: {             num += 1         }, label: {Text("click+1")})         }     } } Question 1: If I run the code above on simulator, I could get the value of "num" on the console by using"po _num". However, if I run the code in previews(by "Debug-Attach to process"), I only get the error"error: :3:1: error: cannot find '_num' in scope" on the console by using"po _num" Xcode 13.2.1 Question 2: I could use "po num"/"po _num" to get the value of "num" with Xcode 12. BUT, only "po _num" works in Xcode13. "po num" will raise the error:" error: Couldn't lookup symbols: Preview2.ContentView.num.getter : Swift.Int" Any help will be appreciated.
0
0
1.1k
Dec ’21
"onTapGesture" interferes with segmented picker
struct ProblemSegmentTest: View {     @State private var select = 0     var body: some View {         VStack {             Picker("Test", selection: $select) {                 Text("A").tag(0)                 Text("B").tag(1)                 Text("C").tag(2)             }             .pickerStyle(SegmentedPickerStyle())         }         .onTapGesture {             print("test")         }     } } I want to do sth when the picker is taped. However, when I apply ".onTapGesture" to the vstack, the picker's options can't be selected any more. Any help will be appreciated.
5
1
1.5k
Sep ’21
What's the difference between InlinePickerStyle and WheelPickerStyle
struct PickerStyleView: View {     @State private var num  =  0     var body: some View {         Form{             Text("Number")             Picker(String(num), selection: $num, content: {                                  Text("5").tag(5)                 Text("10").tag(10)                 Text("15").tag(15)                 Text("20").tag(20)             })             .pickerStyle(InlinePickerStyle())         }     } } Using InlinePickerStyle() and WheelPickerStyle() seems to be no difference. What does "InlinePickerStyle()" refer to? And which case is "InlinePickerStyle()" suitable for in practice? Any help will be appreciated.
1
0
647
Sep ’21
A weird problem of LazyVGrid layout
I wrote some code using LazyVGrid. struct LazyVStackTestView: View {     let columnGridItem = Array(repeating: GridItem(), count: 3)     var body: some View {         GeometryReader{geo in             HStack{                 Rectangle().frame(maxWidth: 300,maxHeight: 100)                 LazyVGrid(columns: columnGridItem){                     ForEach(1..<13) { btn in                         Image(systemName: "plusminus.circle")                             .resizable()                             .scaledToFit()                             .clipShape(Circle())                     }                 }                 .padding()                 .frame(maxWidth: geo.size.height*0.6, maxHeight: geo.size.height)             }.border(Color.black)             .padding()         }.border(Color.blue)     } } When run it on simulator(iPhone 11) in horizontal orientation, I get a 4rows3columns button pad that is what I want. But when I turn the simulator to vertical orientation and back to horizontal orientation immediately, the button pad becomes 3rows3columns! What had happened? Any help will be appreciated.
2
0
2.4k
Jun ’21
onTapGesture conflicts with button
I want to perform some code when the form is tapped. However the button in the form is affected by the onTapGesture either. I want the button tapped to execute the action block, not the onTapGesture block. How should I do? Thanks in advance. struct TextFieldPopupView: View {     @State private var text = ""     @State private var isON = false     var body: some View {         Form{             Text("Hello")             TextField("Hello", text: $text) .textFieldStyle(RoundedBorderTextFieldStyle())             Button(action: {                 print("Button")             }, label: {Text("Button")})             Toggle(isOn: $isON, label: {                 Text("Toggle")             })         }         .onTapGesture {             print("Form")         }     } }
2
1
5.4k
Jun ’21
Protocol as return type
In swift language guide-"Opaque Types"-"Differences Between Opaque Types and Protocol Types", it said: "Another problem with this approach is that the shape transformations don’t nest. The result of flipping a triangle is a value of type Shape, and the protoFlip(:) function takes an argument of some type that conforms to the Shape protocol. However, a value of a protocol type doesn’t conform to that protocol; the value returned by protoFlip(:) doesn’t conform to Shape. This means code like protoFlip(protoFlip(smallTriange)) that applies multiple transformations is invalid because the flipped shape isn’t a valid argument to protoFlip(:)" I can't understand why it said"a value of a protocol type doesn’t conform to that protocol; the value returned by protoFlip(:) doesn’t conform to Shape". The return value must conform to Shape. It's a fundamental requirement by function signature, isn't it?
8
0
1.6k
May ’21
Is there any way to set "ringer and alerts" sound in code?
I want to set "ringer and alerts" sound in code. MPVolumeView() seems like to control the system volume only. I have some sound effect(by invoking "AudioServicesPlaySystemSound(SystemSoundID:)") affected by "ringer and alerts" in my app. Even when the system volume is max, my app sound effect is still mute if "ringer and alerts" sound is mute. I have to tune "ringer and alerts" by "setting-sounds-ringer and alerts" manually. Is there any programable way to set it? Any help will be greatly appreciated.
0
0
595
Apr ’21
Read image from asset catalog
I drag a image.jpg into the assets.xcassets. And I want to read the jpg data in my code by "var imageData = NSDataAsset(name: "image")?.data" However, I get an error: "CoreUI: attempting to lookup a named data 'image' with a type that is not a data type in the AssetCatalog". And "imageData" is always nil. Do I make a mistake or miss sth? Thanks in advance.
5
0
8.4k
Apr ’21
large size image in swiftui
I want to demonstrate a large size image(5184*3456) in a modal sheet with swiftui. When I popup the sheet, memory usage increases from 20mb up to 100mb. However, when I dismiss the sheet, memory usage just decreases from 100mb to 92mb, wear and tear. I popup the sheet again, memory usage increases from 92mb back to 100mb. Back and forth, memory usage always changes between 92mb and 100mb, instead of between 20mb and 100mb that I expect to. Why doesn't memory usage decrease to 20mb when the sheet dismiss? Why doesn't image been purged from memory when the sheet dismisses? I just want memory usage stays in a low level. How could I do? Thanks in advance. struct IntroductionView: View {     @Environment(\EnvironmentValues.presentationMode) var presentation     var body: some View { GeometryReader{geo in            VStack(alignment:.leading){ Image("image") .resizable() .aspectRatio(contentMode: .fill) .frame(maxHeight:geo.size.height/4) .clipped()                 Spacer()                 Button(action: { presentation.wrappedValue.dismiss()                 }, label: {                     Text("Close")             }             }         } } }
0
0
909
Apr ’21