我有一个UIView buttonView,并给它一个相等的高度约束,超级UIView的乘数为0.4。框架已正确调整,但buttonView的子视图不可见。但是,当我单击按钮所在的位置时,操作会触发。 当我将buttonViews约束更改为固定高度时,不会发生这种情况。 如果你愿意,我可以更多地了解细节,但是有没有人遇到类似的东西?
修改
应该有两个按钮,标签下方的空白区域。当我点击空白区时,计时器会运行,但按钮不可见。
答案 0 :(得分:3)
我看了一下这个项目,我在几个地方看到的问题是使用了自动布局和手动帧转换,这可能很棘手。我看到一些具体的事情你可能需要修改,以便视图在不同的尺寸/方向上正确适应和渲染:
1)CustomAudioLearn视图从xib加载视图并将其添加为子视图。但是,它不会对此子视图设置约束,以确保子视图始终拥抱父视图的边缘。因此,通过故事板中的自动布局更改CustomAudioLearn视图的大小会导致基于xib的子视图始终保持相同的大小。您应该在子视图中添加约束或覆盖CustomAudioLearn中的layoutSubviews()
,并在其中包含self.customView.frame = self.bounds
和self.customViw.layoutIfNeeded()
。另外,我建议删除行self.customView.translatesAutoresizingMaskIntoConstraints = false
2)同样,RecordButtonView
在awakeFromNib()
上设置其角半径,但在布局发生后,它不再是正确的半径。因此,每次更新布局时,您应再次考虑覆盖layoutSubviews()
或类似位置以调整半径。
3)最后,故事板中RecordButtonView的超级视图设置为70的高度约束,优先级为1000.如果希望RecordButtonView针对可用空间进行扩展,则应该降低该高度约束的优先级因此,RecrodButtonView的比例宽度和1:1宽高比在确定超视图的高度时优先考虑。否则,它将始终是70分,否则会有相互冲突的约束。
答案 1 :(得分:0)
问题是我将圆角设置为我框架宽度的一半。半径变得如此之大以至于完全隐藏了视野。我更改了它,以便在设置边界后改变角半径。对不起混淆,但感谢您的帮助!