【问题标题】:iOS storyboard - Auto Layout won't resize and reposition subviewsiOS 故事板 - 自动布局不会调整子视图的大小和位置
【发布时间】:2016-06-20 10:04:54
【问题描述】:

我不想设置 Y 位置约束,因为我需要视图彼此相对,因为我有一个 UITextView 必须并且应该根据如何动态更改其值里面有很多行文字。但它并没有这样做。我可以通过在 UITextView 上调用 sizeToFit() 来强制它执行此操作,但随后它会与下面的视图重叠。

Xcode 提醒我减少歧义,并且整个视图控制器上都有红线,但如果必须是动态的,手动设置 Y 位置约束对我来说没有任何意义。

所以我的问题是我该怎么做 1.让我的UITextView在文本行数增加后调整其高度 2. 使其下方的views自动下推,使UITextView不会重叠。

我已经阅读了多个答案,并设法做到了 1 但没有做到另一个。

Swift 中的解决方案:

let sizeThatFitsTextView = textView.sizeThatFits(CGSizeMake(textView.frame.size.width, textView.frame.size.height))
textViewHeightConstraint.constant = sizeThatFitsTextView.height

【问题讨论】:

    标签: ios xcode swift autolayout storyboard


    【解决方案1】:

    1) Disable the scroll of Textview 来自故事板或编码。

    2) 为textview's height constraint 创建一个outlet。当基于计算发生文本更改时,通过 textView 委托方法以编程方式更改高度约束。

    CGSize sizeThatFitsTextView = [TextView sizeThatFits:CGSizeMake(TextView.frame.size.width, MAXFLOAT)];
    
    TextViewHeightConstraint.constant = sizeThatFitsTextView.height; 
    

    【讨论】:

    • @Questioner 欢迎 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    相关资源
    最近更新 更多