我已經子類UITextField
並試圖通過調用[self.superView addSubview:newView]
添加子視圖,但這不起作用,並且self.superview.class
返回null
。添加子視圖到子類UITextField不顯示
一個如何可以一個子視圖添加到superView
該視圖顯示在屏幕上,並使用故事板
@interface NewTextField : UITextField <UITextFieldDelegate>
@end
然後
@implementation MBTextField
- (id)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
[self addWhiteLine]; // here im adding a view
}
return self;
}
- (void)addWhiteLine{
UIView *div = [UIView new];
div.frame = CGRectMake(self.frame.origin.x,
self.frame.origin.y + self.frame.size.height+borderWidth,
self.frame.size.width,
borderWidth);
div.backgroundColor = [borderColor colorWithAlphaComponent:0.3f];
[self.superview addSubview:div];
}
溶液中進行 :通過@接受回答和評論麥克沃思。視圖的框架必須更改爲以下內容。
div.frame = CGRectMake(0,
self.frame.size.height - borderWidth,
self.frame.size.width,
borderWidth);
當您調用'addWhiteLine'時,文本字段尚未添加到視圖。 – rmaddy
讓這個自定義視圖添加一個視圖給自己以外的東西是不好的。現在,您必須確保移除其他視圖,並在「自我」移動時移動其他視圖。只需將子視圖添加到'self'即可保持簡單。 – rmaddy
爲什麼你將新創建的視圖添加到文本字段的超級視圖而不是將其添加爲文本字段的子視圖?添加到自己的 – Srikanth