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