遇到在更改帧大小后重新加载视图的问题

时间:2017-01-08 18:22:56

标签: ios swift uiview

message属性占据整个屏幕。该应用程序允许拍照。拍照后img变为nil并将图像添加到UIImageView。

然后更改message的帧大小并将UIImageView添加到viewcontroller。

UIImageView可以像我预期的那样成功添加。但message的框架尺寸并未发生变化。

如果我没有添加此UIImageView,那么,我可以更改message的帧大小。

如何解决此问题?

我确实尝试将此代码放在viewWillAppearviewDidAppear中,但代码仍无效。

感谢。

    @IBOutlet weak var message: UITextView!
    var img: UIImage? {
        didSet {
            if img != nil {
                let imageview = UIImageView(image: img)
                let height = UIScreen.main.bounds.height * 0.4
                let y = UIScreen.main.bounds.height - height
                imageview.frame = CGRect(x: 0, y: y, width: UIScreen.main.bounds.width, height: height)
                message.frame = CGRect(x: message.frame.origin.x, y: message.frame.origin.y, width: message.frame.width, height: message.frame.height - height)
                self.view.addSubview(imageview)
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

如果你使用autolayout而不是你应该从你的消息textview的高度限制出口,你应该减少它的高度不变,而不是重置它的框架,因为框架不会影响你什么时候设置约束!如果尚未设置高度约束,则取出文本视图底部约束的出口,并使用高度大小而不是零来更改常量!您可以从约束拖放到您的班级以获取其出口!