首页 > 解决方案 > 改变视图的约束

问题描述

我有一个被 2 个 UIVIEWS 包围的图像视图,它们是绿色的顶栏和蓝色的侧栏。

我编写了一个点击手势[用于隐藏视图],所以如果你点击一次,顶部和侧边栏会隐藏,再次点击时,它们会重新出现。

但是,我想编写代码,如果条形可见,则图像视图应将自身拥抱到条形而不延伸,以防止剪切。请看附件图片链接

但是当我们点击并且条消失时,我希望图像视图拥抱超级视图,我该怎么做?

我已经像这样对手势进行了编码:

@IBAction func test(_ sender: UITapGestureRecognizer) {

print("single tap")

if top.isHidden == false && down.isHidden == false{
    top.isHidden = true
    down.isHidden = true

    print("first")

    
} else{
    top.isHidden = false
    down.isHidden = false
 }

问题图片

标签: iosswiftautolayout

解决方案


您可以尝试使用锚约束。

例如,放

imageView.topAnchor.constraint(equalto: topView.bottomAnchor).isActive = true

侧视图也是如此,因此它们始终受图像视图边缘的约束。


推荐阅读