过去两天我一直在为这个问题苦思冥想。谷歌搜索了很多但还没有找到答案,所以我决定在这里寻求帮助。让我们看看我是否有运气。
我正在编写一个可重复使用的控件,它由一个 UIView
和数量可变的自定义 UIButtons
组成。我实现了 initWithFrame
:、initWithCoder
: 和 drawRect
: 按钮(在绘制之前构建)实际上被添加到 View 中。一切都以编程方式完成,因为在使用控件时应提供 UIButton
内容,因此此 UIView
没有 XIB。
这个 UIView
,我们称它为 CustomizableBarButton
然后在 UIViewController
中使用,我们称它为 MyTestViewController
它的一个 View ,我们称它为 customizableBarButtonView
。
MyTestViewController
的 GUI 在 IB 上设置,其中 UIView
绑定(bind)到 customizableBarButtonView
(相应类匹配)。
MyTestViewController
是一个非常标准的类,除了 viewWillAppear
:它初始化按钮并将它们与一些按钮一起传递给 CustomizableBarButton
其他选项。
问题是一切都很完美……除了第一次!
我的意思是,当我在模拟器上运行应用程序时(我还没有在 iPhone 上尝试过,但我坚信这不是硬件问题)MyTestViewController
显示 customizedBarButtonView
背景但不是按钮。现在,当您单击应该是按钮的位置时,所有按钮都会突然出现!
我很困惑,因为 CustomizablebarButton
drawRect: 在奇怪的“点击即出现”效果之前运行,并且按钮实际上已添加到 subview 。
另一个暗示我的帮助:如果你不点击按钮(所以你仍然没有按钮)但旋转设备它们也会像变魔术一样出现!
这可能是非常简单的事情,但我想念它,我快疯了......
有人可以帮忙吗?
提前致谢!
最佳答案
您说要在 drawRect:
中添加按钮。不要那样做。您需要在初始化方法中添加按钮。
关于ios - 带有 UIButtons 的 UIView 在单击或旋转之前未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8990498/