过去两天我一直在讨论这个问题。谷歌搜索了很多,但还没有找到答案,所以我决定在这里请求一些帮助。让我们看看我是否有运气。
我正在对可重复使用的控件进行编码,该控件由UIView
和可变数量的自定义UIButtons
组成。我实施了initWithFrame
:,initWithCoder
:和drawRect
:其中按钮(在绘图之前构建)实际上已添加到视图中。所有内容都以编程方式完成,因为在使用控件时应提供UIButton
内容,因此UIView
没有XIB。
这个UIView
,我们称之为CustomizableBarButton
然后在UIViewController
中使用,让我们称之为MyTestViewController
,并在其上调用它,让我们称之为customizableBarButtonView
}。
MyTestViewController
的GUI设置在IB上,其中UIView
与customizableBarButtonView
绑定(该类相应地匹配)。
MyTestViewController
是一个非常标准的类,除了viewWillAppear
:初始化按钮并将它们与其他一些选项一起传递给CustomizableBarButton
。
问题是一切都很完美......除了第一次!
我的意思是,当我在模拟器上运行应用程序时(我还没有在iPhone上试过它,但我坚信这不是硬件问题)MyTestViewController
显示customizableBarButtonView
背景但不是按钮。现在,当您点击按钮应该突然出现的所有按钮的位置时!
我很困惑,因为CustomizablebarButton
drawRect:在奇怪的“click n'appear”效果之前运行,按钮实际上被添加到子视图中。
另一个暗示我的帮助:如果你没有点击按钮(所以你还没有按钮)但旋转设备它们也会像魔术一样出现!
这可能是非常简单的事情,但我很想念它,我很疯狂......
有人可以帮忙吗?
提前致谢!
答案 0 :(得分:0)
你说你在drawRect:
添加了按钮。不要那样做。您需要在init方法中添加按钮。