小编And*_*ltz的帖子

当 SecureField 在 SwiftUI 中聚焦/不聚焦时执行代码

我在 SwiftUI 中有一个 SecureField。当这个 Field 获得焦点时(当用户点击它时)我想操纵一个 @State 属性来为 SecureField 应用偏移修饰符。当 SecureField 失去焦点时,@State 属性应该再次重置。如果键盘被切换,我想这样做是为了让 SecureField 可见。

我通过使用 TextField 的 onEditingChanged 参数实现了这一点,但 SecureField 不存在此参数。

如何使用 SwiftUI 中的 SecureField 执行此操作?

如果 TextField 被聚焦,这将应用偏移量:

import SwiftUI

let lightGreyColor = Color(red: 239.0/255.0, green: 243.0/255.0, blue: 244.0/255.0, opacity: 1.0)

struct ContentView : View {
    @State private var textFieldString: String = ""

    @State private var editingMode: Bool = false

    var body: some View {
        VStack {
            SecureField($textFieldString, placeholder: Text("My placeholder"))
            }
            .padding()
            .background(lightGreyColor)
            .cornerRadius(10.0)
            .padding()
            .offset(y: editingMode …
Run Code Online (Sandbox Code Playgroud)

textfield swift swiftui

10
推荐指数
1
解决办法
1586
查看次数

SwiftUI AspectRatio 不适用于来自相机的图像

我不确定这是否是 SwiftUI 特定的问题。无论如何,我有一个 UIImagePickerController,我使用 UIViewControllerRepresentableProtocol 将它实现到 SwiftUI 视图中:

struct ContentView: View {

@State var showCameraView = false
@State var showImagePicker = false
@State var UserImage = Image("user")

var body: some View {
    VStack {
        UserImage
            .resizable()
            .frame(width: 200, height: 200)
            .scaledToFit()
            .background(Color.gray)
            .cornerRadius(200)
            .clipped()
        Button(action: {self.showImagePicker = true}) {
            Text("Choose from camera roll")
        }
            .padding(.top, 10)
    }
        .sheet(isPresented: $showImagePicker) {
            ImagePicker(showImagePicker: self.$showImagePicker, pickedImage: self.$UserImage)
            }

}
Run Code Online (Sandbox Code Playgroud)

}

struct ImagePicker: UIViewControllerRepresentable {

@Binding var showImagePicker: Bool
@Binding var pickedImage: Image

func …
Run Code Online (Sandbox Code Playgroud)

xcode uikit uiimagepickercontroller swift swiftui

9
推荐指数
2
解决办法
1369
查看次数

SwiftUI ScrollView 中的 GeometryReader 导致奇怪的行为和随机偏移

我试图创建一个包含 GeometryReader 的 ScrollView(明确不是相反)。GeometryReader 应包含具有固定宽度和高度的(图像)。然而,当这样做时,ScrollView 将视图推到屏幕“上方”,它似乎应用了一些随机的垂直偏移。

在此处输入图片说明

var body: some View {
    ScrollView {
        GeometryReader { geometry in
            Image("hp")
                .resizable()
                .aspectRatio(contentMode: .fill)
                .frame(width: geometry.size.width, height: 400)
                .clipped()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

删除 GeometryReader 并仅插入图像时,它工作正常。

有人可以帮忙吗?

编辑:找到解决方案。我通过告诉图像它应该与内部几何读取器一样高和宽来实现所需的行为。然后我正在设置内部几何阅读器的框架。我正在使用外部几何阅读器来访问整个屏幕的尺寸

var body: some View {
    GeometryReader { outerGeometry in
        ScrollView {
            VStack {
                GeometryReader { innerGeometry in
                    Image("hp")
                        .resizable()
                        .aspectRatio(contentMode: .fill)
                        .frame(width: innerGeometry.size.width,
                        height: innerGeometry.size.height)
                        .offset(y: innerGeometry.frame(in: .global).minY/7)
                        .clipped()
                }
                    .frame(width: outerGeometry.size.width, height: 300)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望它可以帮助某人!

ios swift swiftui

8
推荐指数
2
解决办法
5156
查看次数

包含自定义类的数组的总和 (Swift)

我正在找出一种方法来获取数组中包含的类的值之和。我的设置如下:

class CustomClass {
    var value: Int?
    init(value: Int) {
       self.value = value
    }
}
Run Code Online (Sandbox Code Playgroud)
let object1 = CustomClass(value: 2)
let object2 = CustomClass(value: 4)
let object3 = CustomClass(value: 8)

let array: [CustomClass] = [object1, object2, object3]
Run Code Online (Sandbox Code Playgroud)

我目前的解决方案如下:

var sumArray = [Int]()
for object in array {
    sumArray.append(object.value!)
}
let sum = sumArray.reduce(0, +)
Run Code Online (Sandbox Code Playgroud)

问题是,对于具有许多其他值的类来说,它变得非常复杂,有人知道更好的解决方案吗?

arrays reduce sum swift

4
推荐指数
1
解决办法
4703
查看次数

标签 统计

swift ×4

swiftui ×3

arrays ×1

ios ×1

reduce ×1

sum ×1

textfield ×1

uiimagepickercontroller ×1

uikit ×1

xcode ×1