【问题标题】:Swift, how to convert an existing uiview to uiscrollview?Swift,如何将现有的 uiview 转换为 uiscrollview?
【发布时间】:2015-10-14 14:18:32
【问题描述】:

我目前只有一个视图的情节提要,但我需要再添加 5 个文本字段。所以我喜欢启用垂直滚动。我以为我只需要将视图控制器的类从 UIView 更改为 UIScrollView:

除了更改类之外,我还应该做什么才能启用此视图的垂直滚动?? 只有我在 viewDidLoad() 中拥有的东西

    override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    // Set date to today
    let today = dateToday()
    dateInvoice.text = today
}

编辑 好的,我让滚动部分工作了,但是隐藏/关闭键盘部分不再工作了。如果用户在滚动视图中的文本字段之外单击,我如何关闭键盘

    //HIDE KEYBOARD
func textFieldShouldReturn(textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    self.view.endEditing(true)
}
//END HIDE KEYBOARD

编辑 2: 由于以下原因,我找到了一个可行的解决方案: Swift UIScrollView : keyboard doesn't dismiss interactively

【问题讨论】:

    标签: ios swift uiview uiscrollview


    【解决方案1】:

    选择您的文本字段,然后在菜单中:

    编辑器->嵌入->滚动视图

    然后使滚动视图具有正确的大小,如果您使用自动布局,请添加所需的约束。

    【讨论】:

      【解决方案2】:

      你不能只是神奇地将 UIView 变成 UIScrollView。要么删除 UIView 并将其替换为滚动视图,要么(更容易)保留 UIView 并将滚动视图拖入其中(并将其固定在所有四个侧面)。

      【讨论】:

      • 我将所有表单元素放在滚动视图中(在 UIView 内)并固定所有 4 个面,但魔法并没有发生。我应该添加什么代码?我如何触发 UIscrollView,因为以下停止工作` func textFieldShouldReturn(textField: UITextField) -> Bool { textField.resignFirstResponder() return true } override func touchesBegan(touches: Set, withEvent event: UIEvent?) { self.view.endEditing(true) }`
      • 对不起,马特,不,我是一个快速的新手,看一堆教程。但不记得 uiscrollview 的。回到教程是
      • 一切都与contentSize有关。可能有助于阅读我的书:apeth.com/iOSBook/ch20.html
      • 好的,我让滚动部分工作了,但是你能指出我在 View>View>Scroll View 部分中不起作用的隐藏键盘部分的正确方向吗?
      • 将新的滚动视图拖到现有的 ui 视图中?还是将现有的 ui 视图拖到滚动视图中?
      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2018-01-09
      • 2022-11-25
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多