【发布时间】:2014-01-10 23:52:26
【问题描述】:
目前我有一个自定义 UIView 类,它完成了以下操作:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self setupView];
}
return self;
}
-(void)setupView {
self.layer.cornerRadius = 4;
self.layer.masksToBounds= YES;
self.backgroundColor = [UIColor whiteColor];
self.layer.borderWidth = 1;
self.layer.borderColor = [UIColor lightGrayColor].CGColor;
}
我还有另一个 UIView 类别,它创建一个新的 UIView 并制作它,以便我可以使用以下自动布局:
@implementation UIView (Autolayout)
+(id)autolayoutView
{
UIView *view = [self new];
view.translatesAutoresizingMaskIntoConstraints = NO;
return view;
}
两者都相当简单。我现在想做的是为 UIView 创建一个自定义的 init 方法。
问题
我希望使用自定义 init 方法来创建 UILabel 并将其添加到 UIView。但是,我希望 init 方法使用我已经创建的 UIView 类别?我相信这很简单,只是不知道如何完成?
编辑
目前要创建自定义自动布局视图我调用UIView *myView = [MyCustomViewClass autoLayoutView]
我想做的是更新自定义视图类的 init 方法以创建标签,但仍然以相同的方式调用它,以便使用类别并且我也调用了自动布局信息。
编辑 2
真正有用的是如果我可以传入一个参数来确定UIView 是否应该有UILabel。因此,如果视图应该有标签,则可以调用自定义的 init 方法。我知道创建和添加标签/约束的代码我只是不确定子类/类别链接和创建自定义初始化方法。以及如何与autoLayoutView 调用一起调用?
【问题讨论】:
-
有点不清楚,您是想从类别中添加标签还是从 init 方法添加标签?你是想从 UIView 类中还是从另一个 Controller 或其他东西中调用类别?
-
@Eric - 我添加了一个编辑,希望能阐明我想要实现的目标。我确信它很简单,但我想完全理解这种方法。
-
还添加了进一步的编辑来解释我在这里的理解困难和困惑。谢谢
标签: ios objective-c uiview ios7 uilabel