在Swift 2中以编程方式调整UITextView的大小以扩大其宽度

时间:2016-05-24 14:21:43

标签: uitableview swift2

编辑:我发布了我想在iPad和iPhone上实现的截图。在iPhone中使用按钮时,UITableView会打开并且必须覆盖UITextView的一部分。

enter image description here

我有一个适用于iPhone和iPad的通用项目。在主故事板中有两个控件,一个是UITextField和一个UITableView。 UITextField保留屏幕的左1/3部分,UITableView保留屏幕的剩余部分。

在iPhone中,我隐藏了UITableView,我希望UITextView保留所有屏幕。然后,当用户点击按钮时,UITableView会出现在文本字段上(我会在用户选择一个选项时立即关闭UITableView。)

如何让tableView以其右边框的方式放大,转到屏幕的右边框?

1 个答案:

答案 0 :(得分:1)

实现所描述的一种方法是从场景的“外部”开始,主视图的负前导空间。当用户按下按钮时,前导空间约束的值设置为零。

示例:

enter image description here

最终结果:

enter image description here

ViewController代码:

class ViewController: UIViewController {

    @IBOutlet weak var tableViewLeadingMargin: NSLayoutConstraint!

    @IBAction func revealTableView(sender: UIButton) {
        UIView.animateWithDuration(
            3.0,
            animations: {
                self.tableViewLeadingMargin.constant = 0
                self.view.layoutIfNeeded()
            }
        )
    }
}

只有一点需要注意:您需要根据iPhone屏幕尺寸以编程方式调整TableView的宽度。

iPhone问题上面的答案。对于iPad,我建议使用大小类,为它们创建特定的布局/约束:

sizeClasses

举例说明:

sizeClasseForIpad