我已经做了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