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

Ios 在更改其帧大小后重新加载视图时遇到问题,ios,swift,uiview,Ios,Swift,Uiview,消息属性占据整个屏幕。该应用程序允许拍照。拍照后,img变为notnil并将图像添加到UIImageView 然后更改消息的帧大小并将UIImageView添加到viewcontroller UIImageView可以像我预期的那样成功添加。但是消息的帧大小没有改变 如果不添加此UIImageView,则可以更改消息的帧大小 我如何解决这个问题 我确实尝试过将此代码放入视图将出现和视图显示,但代码仍然不起作用 谢谢 @IBOutlet weak var message: UITextVi

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

然后更改
消息的帧大小并将UIImageView添加到viewcontroller

UIImageView可以像我预期的那样成功添加。但是
消息的帧大小没有改变

如果不添加此UIImageView,则可以更改
消息的帧大小

我如何解决这个问题

我确实尝试过将此代码放入
视图将出现
视图显示
,但代码仍然不起作用

谢谢

    @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)
            }
        }
    }

如果您使用的是autolayout,那么您应该将消息textview的高度约束设置为outlet,并且您应该将其常数降低高度,而不是重置其帧,因为设置了约束后,帧不会产生影响!如果未设置高度约束,则采用文本视图底部约束的出口,并使用高度大小更改常量,而不是零!您可以将约束拖放到类中,以获取其出口

你在使用自动布局吗?是的。我确实用过。但如果我不添加子视图。我可以更改邮件视图的大小。例如,我可以制作一个按钮来更改消息视图的大小。但如果我添加,我无法更改邮件视图的大小。对不起,我不明白。如果不添加子视图,我可以更改消息文本视图的高度。示例:在ViewDidDisplay:message.frame=CGRect(x:message.frame.origin.x,y:message.frame.origin.y,宽度:message.frame.width,高度:message.frame.height-高度)中添加此代码,而不添加子视图。消息文本查看大小将被更改。谢谢。你在战斗。但很难找到解决办法。但是我在我的新书上找到了。使用此行message.bottomAnchor.constraint(equalTo:imageview.topAnchor).isActive=true