ios - 正确更改父 View 时无法更改 subview 的大小

标签 ios swift uiview

我还有一些对象,但我想我基本上有两个 View 和一个按钮。其他人根本不会影响那些对象。

expandingView 位于屏幕上方,而 shinkingView 位于下方。它们相距 8 像素。

通过点击按钮,我想将expandingView的高度增加30,而另一个的高度减少30,这样我就可以在有限的区域内使一个更大,另一个更小。我的代码如下:

expandingView.frame.size.height += 30
shrinkingView.frame.size.height -= 30

shrinkingView.frame.origin.y += 30

问题是我无法在 shrinkingView 中更改 subview 。其中一个需要修复所以没关系,但另一个确实需要更改,因为它的父 View 改变了它的大小。

subview 正确链接到 UIButton 变量。我以与更改 super View 相同的方式键入代码,但没有任何变化,就好像我键入的代码不存在一样。从字面上看,它们根本没有任何效果。

为什么用同样的代码方式却改不了呢?是因为它们处于不同的层次结构中吗?

最佳答案

//takes in a view and for each subview (so every element inside if it is some kind of child of the view, it will be reduces. So all elements will be reduced. 
func reduceSubviews(view:UIView) {
    for views in view.subviews {
        views.frame.size.height -= 30
        if(views.subviews.count > 0) {
            reduceSubviews(views)
        }
    }
}
//apply to any view such as shrinkingView
reduceSubviews(shrinkingView)

好吧,坦率地说,这段代码进入了 shrinkingView,遍历了它的所有 subview ,并降低了它们的高度。或者它应该大声笑

关于ios - 正确更改父 View 时无法更改 subview 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38452880/

相关文章:

ios - iOS 8 中的自定义状态栏

ios - 如何将 UIStepper 添加到 AlertView

ios - 自定义 Action 控件 Swift 3.0

ios - 错误 Assets 目录编译器错误

ios - drawRect : 中不同颜色的不同行为

ios - 从嵌套数据数组向 UITableViewCell 中的 UITableView 填充数据

ios - 逐行绘制到位图上下文的有效方法

swift - 雪碧包 : How to limit player movement to certain tiles only

ios - Facebook 登录 UIView 加载异常,而 UI 行为符合预期

iPhone 使用另一个 View 添加 View