相关疑难解决方法(0)

SwiftUI中的Geometry Reader是什么?

我正在学习SwiftUI。我遇到了“ GeometryReader”。我想知道为什么以及何时使用它?

swift swiftui

19
推荐指数
1
解决办法
6163
查看次数

当键盘出现在 SwiftUI 中时向上滚动以查看 TextField

在我的用例中,我必须将 a 放在 aTextField中的可用项目下方List,通过使用它TextField,我们可以将项目添加到List.

最初,没有列表项(items数组为空)

这是一个最小的、可重现的示例

import SwiftUI

struct ContentView: View {
    @State var itemName = ""
    @State var items = [String]()

    var body: some View {
        NavigationView {
            List {
                ForEach(self.items, id: \.self) {
                    Text($0)
                }

                VStack {
                    TextField("Item Name", text: $itemName)
                        .textFieldStyle(RoundedBorderTextFieldStyle())

                    Button(action: {
                        self.items.append(self.itemName)
                        self.itemName = ""

                    }) {
                        Text("Add Item")
                    }
                }
            }
        .navigationBarTitle(Text("Title"))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我们可以通过在 中键入一些内容TextField并单击“添加项目”来向列表中添加一个新项目Button,我们添加的每个项目都TextField …

swiftui swiftui-list

13
推荐指数
1
解决办法
4415
查看次数

图像未出现在 SwiftUI 中

您好,我是 SwiftUI 的新手,我正在使用标签 Image(“我的图像”),我的图像位于 Assets.xcassets 目录中,当我编辑时一切正常,但当我在 mac 中使用我的单元或模拟器进行测试时图像没有出现,我不明白为什么我的代码如此简单,如果可以告诉我谁显示完整的屏幕,因为如果我在屏幕中使用一些文本或文本字段,则不会出现在整个屏幕上,我不知道如何将屏幕向下移动。真的谢谢你帮助我。

\n

我在 iPhone 7 上使用 iOS 13.4

\n

图像

\n
var body: some View {\n        VStack {\n            ZStack{\n            Image("icon-logo")\n               .resizable()\n                .scaledToFit()\n                .clipShape(Circle())\n                .overlay(Circle().stroke(Color(red: 39 / 255, green: 113 / 255, blue: 233 / 255), lineWidth: 5))\n                .shadow(radius: 20)\n                \n            }\n            Text("Datos de Usuario")\n            VStack{\n                Text("Nombre")\n                 .offset(x: -140, y: 0)\n            TextField("--Nombre--", text: /*@START_MENU_TOKEN@*//*@PLACEHOLDER=Value@*/.constant("")/*@END_MENU_TOKEN@*/)\n                .offset(x: 20, y: 0)\n                .padding(15)\n                .background(Color(red: 242 / 255, green: 242 / 255, blue: 242 / 255))\n                Text("Apellido")\n                     .offset(x: -140, y: …
Run Code Online (Sandbox Code Playgroud)

image swiftui

11
推荐指数
2
解决办法
9447
查看次数

iOS16 Bug 键盘在关闭 SwiftUI 时破坏了布局

在 iOS16 中,工作表内部存在键盘的错误,当工作表关闭时键盘消失(没关系),但布局未更新。我只看到了关于同一问题的 1 个问题,想知道也许有人找到了临时解决方法,直到苹果不解决这个问题。重现代码:

struct Test: View {
    
    @State var isPresented: Bool = false
    @State var text: String = ""
    
    var body: some View {
        VStack{
            Button {
                isPresented.toggle()
            } label: {
                Text("PRESENT")
            }
        }
        .sheet(isPresented: $isPresented) {
            ZStack {
                Color.red
                VStack{
                    TextField("Test", text: $text)
                        .frame(height: 50, alignment: .center)
                    Spacer()
                    Rectangle()
                        .fill(Color.blue)
                        .frame(width:300, height: 50)
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

视频: https: //vimeo.com/758845068

swift swiftui ios16

11
推荐指数
1
解决办法
1657
查看次数

SwiftUI 中的选择器

我正在尝试使用在 SwiftUI 中为 UIKit 创建的 3rd 方库,例如,该BetterSegmentedControl库(https://github.com/gmarm/BetterSegmentedControl)需要一个 Selector 女巫采用一个objc函数来处理用户输入。

在 SwiftUI 中甚至有处理这个的方法吗?

struct ContentView : UIViewRepresentable {
    func makeUIView(context: Context) -> BetterSegmentedControl {
        BetterSegmentedControl()
    }


    func updateUIView(_ view: BetterSegmentedControl, context: Context) {
        let control = BetterSegmentedControl(
            frame: CGRect(x: 0, y: 0, width: 300, height: 44),
            segments: LabelSegment.segments(withTitles: ["One", "Two", "Three"],
                                            normalTextColor: .lightGray,
                                            selectedTextColor: .white),
            index: 1,
            options: [.backgroundColor(.darkGray),
                      .indicatorViewBackgroundColor(.blue)])

        view.addSubview(control)

        @objc func controlValueChanged(_ sender: BetterSegmentedControl) {

        }

        control.addTarget(self, action: #selector(controlValueChanged(_:)), for: .valueChanged)
        view.addSubview(control)

    } …
Run Code Online (Sandbox Code Playgroud)

ios swiftui

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

在SwiftUI中显示键盘时如何显示完整列表

键盘出现时如何显示完整的列表?键盘隐藏在列表的下部。

我的列表行中有一个textField。当键盘出现时,无法向下滚动以查看完整列表。键盘在列表的前面,而不在列表的“下面”。这是我的编码:

struct ContentView: View {

    @State private var name = ""

    var body: some View {
        List {
            VStack {
                Text("Begin")
                    .frame(width: UIScreen.main.bounds.width)
                    .padding(.bottom, 400)
                    .background(Color.red)

                TextField($name, placeholder: Text("enter text"), onEditingChanged: { _ in
                    //
                }) {
                    //
                }

                Text("End")
                    .frame(width: UIScreen.main.bounds.width)
                    .padding(.top, 400)
                    .background(Color.green)
            }
            .listRowInsets(EdgeInsets())
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我怎么做吗?

非常感谢你。

ios swift swiftui

7
推荐指数
4
解决办法
1699
查看次数

InputAccessoryView / 视图固定到键盘与 SwiftUI

SwiftUI 中是否有等效于 InputAccessoryView 的东西(或任何迹象即将到来?)

如果没有,您将如何模拟 InputAccessoryView(即固定在键盘顶部的视图)的行为?所需的行为类似于 iMessage,其中有一个固定在屏幕底部的视图,当键盘打开时该视图会出现动画并直接位于键盘上方。例如:

键盘关闭:

键盘关闭

键盘打开:

键盘打开

swiftui

7
推荐指数
3
解决办法
4379
查看次数

ScrollView使用SwiftUI获取/设置滚动位置

我试图以编程方式滚动到的特定Y位置,ScrollView单击按钮时,如何设置ScrollView位置?

ScrollView {
 Button(action: {

 }) {
    Text("Sign In").fontWeight(.heavy)        
 }
}
Run Code Online (Sandbox Code Playgroud)

我希望此按钮动作可以访问和更改ScrollView的位置。

xcode ios swift swiftui

6
推荐指数
1
解决办法
3018
查看次数

SwiftUI 键盘避免挤压文本字段

当键盘出现时,视图被压缩而不是向上移动。它在纵向模式下按预期工作,该问题仅在横向模式下出现。附上照片以供澄清。我已经尝试过.edgesIgnoreSafeArea(),以及该线程上提出的解决方案。

VStack {
                
                Text("\(titleText)")
                    .font(.system(size: 30))
                    .bold()
                
                VStack {
                    Text("Item Title")
                    TextField("Item Title", text: $title)
                        .formStyle()
                    
                }
                
                VStack {
                    Text("Item Description")
                    TextField("Item Description", text: $itemDescription)
                    //TextEditor(text: $itemDescription)
                        .formStyle()
                }
                
                VStack {
                    Text("Unit Type")
                    TextField("Each, Total, Hours, LF, etc...", text: $unitType)
                        .formStyle()
                }
                
                VStack {
                    Text("Unit Cost")
                    TextField("Cost per unit", text: $unitCost, onEditingChanged: { (isChanged) in
                        guard !unitCost.isEmpty else { return }
                        //Ensuring entered text can be converted to required double
                        if let _ = Double(unitCost) { …
Run Code Online (Sandbox Code Playgroud)

swift swiftui ios14

5
推荐指数
0
解决办法
351
查看次数

使用 SwiftUI,TextField 始终位于键盘顶部

我有这个

struct ContentView: View {
    var body: some View {
        ZStack(alignment: Alignment.bottom) {
            List {
                Text("Default text").foregroundColor(Color.red)
            }
            TextField("Placeholder", text: .constant(""))
                .frame(minHeight: 30)
                .cornerRadius(8.0)
                .padding(10)
                .background(Color.blue)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

实际上,当我专注于 TextField 时,键盘会隐藏此文本字段。

在此处输入图片说明在此处输入图片说明

SwiftUI 中是否有一个简单的解决方案可以使文本字段始终位于键盘顶部?

xcode ios swift ios13 swiftui

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

出现时键盘高度会有所不同

我试图通过将底部约束修改为键盘高度来显示键盘时的视图。但是返回给我的键盘高度是变化的。

当我点击模拟器中的文本字段时,键盘高度为302。当我尝试打开和关闭软件键盘时,它显示260何时出现键盘。为什么会这样呢?

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(FriendsViewController.keyboardWillShow(_:)), name: UIKeyboardWillShowNotification, object: nil)

func keyboardWillShow(notification: NSNotification) {
    print("Keyboard appearing")
    guard let keyboardHeight = (notification.userInfo! as NSDictionary).objectForKey(UIKeyboardFrameBeginUserInfoKey)?.CGRectValue.size.height else {
        return
    }
    bottomConstraint.constant = keyboardHeight
    print("keyboard height : \(keyboardHeight)")
    self.view.layoutIfNeeded()
}
Run Code Online (Sandbox Code Playgroud)

的高度260实际上是正确的高度,因为它完美地调整了我的视野。随着302我的观点高度偏移了太多。

我的观点的布局是。UITextField在顶部,然后在其UITableView下方。

nsnotifications ios swift

3
推荐指数
2
解决办法
1265
查看次数

标签 统计

swiftui ×10

swift ×7

ios ×5

xcode ×2

image ×1

ios13 ×1

ios14 ×1

ios16 ×1

nsnotifications ×1

swiftui-list ×1