所以,我开发了一种下拉按钮类。
我们称之为DDButton。 我主要导出一个函数:
-(void) addButtonWithImage:(UIImage*)image andTarget:(id)target andSelector:(SEL)selector
允许用户在下拉列表中添加另一个按钮。
我需要在我的应用的不同屏幕中使用DDButton。
我想用它来表达:
DDButton* ddb = [[DDButton alloc] initWithFrame:rect];
[ddb addButtonWithImage....]
[ddb addButtonWithImage....]
我的问题是因为我之前没有将UIView子类化,我应该如何实现它,以后我该如何使用它呢?
我是否使用IB并创建一个存根UIView,我将连接到Identity Pane中的DDButton? 如果是这样,我将如何在稍后实例化视图。
或者, 我是UIView的子类吗?如果是这样,我应该覆盖哪些方法?你在初始化器中设置我的按钮吗?在LayoutSubView?在drawRect?
我很想听听这里最好的方法。 谢谢!
修改
假设我选择IB方式:我有一个主要按钮,我设置无论如何 addButtonWithImage()调用,实际上所有对addButtonWithImage的调用只是“追加”到该按钮。我希望主按钮是视图的大小,直到添加其他按钮,然后视图适当增长。但是,我希望用户首先选择视图的大小...我猜是使用setFrame。 awakeFromNib中的含义我不能指望帧大小(它只取我假设的xib大小)。那我在哪里设置我的主按钮? LayoutSubView? setFrame?我不确定。
答案 0 :(得分:0)
将您的视图作为UIView添加到IB中的接口,然后在标识窗格中更改该类。如果需要在代码中进行初始化,请使用 - (void)awakeFromNib方法。我建议在addButtonWithImage ....
中添加按钮时设置按钮答案 1 :(得分:0)
我可能会做一个子类,在代码中构建视图是一件好事。
覆盖drawrect:做你需要做的任何自定义绘图,如果你只是添加UIImageview或其他东西并进行定位,你可以覆盖initWith ...:并进行自定义初始化。