我已經做了UIView的一個簡單的子類,它有幾個子視圖,但它的突破我看不到的原因。簡單的自定義UIView類破損
在我的故事板視圖控制器中,我添加了一個UIView,並將其製作爲我想要的形狀,並將其添加到我的自定義類中。我的子類的含量低於:
@implementation PersonDetailCell
@synthesize button, requiredMarker, textField;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(void)layoutSubviews
{
[self setBackgroundColor:[UIColor colorWithRed:87.0f/255.0f green:153.0f/255.0f blue:191.0f/255.0f alpha:1.0f]];
textField = [[DetailTextField alloc] initWithFrame:CGRectMake(10, 0, self.frame.size.width -20, self.frame.size.height)];
[textField setFont:[UIFont fontWithName:@"Helvetica" size:14.0f]];
[textField setTextColor:[UIColor whiteColor]];
[textField setHidden:YES];
[self addSubview:textField];
button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[button setHidden:YES];
[self addSubview:button];
requiredMarker = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 4, 22)];
[requiredMarker setBackgroundColor:[UIColor redColor]];
[requiredMarker setHidden:YES];
[self addSubview:requiredMarker];
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
// Drawing code
}
*/
@end
然後在我的視圖控制器代碼我已經導入我的子類,並迷上了它一個IBOutlet我在我的故事板視圖。在我的視圖控制器的viewDidLoad中,我也嘗試設置這個視圖的背景顏色,但沒有任何反應。
我所有的代碼運行沒有崩潰,但我的問題:
我無法設置從我的視圖控制器的背景顏色,(或任何其他屬性爲此事)。
當我運行該應用程序時,高度超過了我在故事板中設置的寬度(寬度很好),但我更改了視圖的高度無處。
任何想法?我以某種方式使用錯誤的方法?
謝謝。
嗯。它將從storyboard獲得initWithCoder:init,但它看起來並不像你在使用該init。你有沒有嘗試在你的vc的viewDidLoad中記錄插座的值?讓我們確保這不是零。此外,layoutSubviews中的斷點也可能是一個很好的診斷。 – danh
關於高度,請檢查故事板中的自動調整遮罩,並確保您添加併成形的視圖沒有可調節的高度設置。 – danh
在viewDidLoad中顯示您嘗試設置背景顏色的代碼。 – rdelmar