У меня есть UIView, у которого есть несколько кнопок, добавленных к нему в виде подзонов. В настоящее время у меня есть кнопки в drawRect :, которые я слышал, это плохая идея, потому что drawRect можно вызвать несколько раз. Я попытался переместить эти UIButton в initWithFrame, но они просто не нарисованы. Как мне это исправить?UIView drawRect vs initWithFrame
Я не использую конструктор интерфейса, поэтому нет файлов NIB. Вызывается initWithFrame. Я проверил, добавив NSLog (...), и мои NSMutableArrays были правильно инициализированы.
My initWitFrame: код в настоящее время очень мало. Это
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame])
{
results = [[NSMutableArray alloc] init];
inputs = [[NSMutableArray alloc] init];
format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"EEE, MMM dd, yyyy"];
renc =[[RenameController alloc] init];
}
return self;
}
Я пытался добавить TextLabel вроде следующего
#define BOX_WIDTH 155.0
#define BOX_OFFSET 45.00
#define ROW_HEIGHT 27
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame])
{
results = [[NSMutableArray alloc] init];
inputs = [[NSMutableArray alloc] init];
format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"EEE, MMM dd, yyyy"];
renc =[[RenameController alloc] init];
double row=0.0;
[self makelabel:@"Start" at:CGRectMake(0, row, BOX_OFFSET, ROW_HEIGHT)];
}
return self;
}
-(void) makelabel:(NSString *) str at:(CGRect) rect
{
UILabel *title = [[UILabel alloc] initWithFrame:rect];
title.text = str;
title.textAlignment = UITextAlignmentLeft;
title.textColor = [UIColor blackColor];
title.backgroundColor = [UIColor clearColor];
title.font = [UIFont boldSystemFontOfSize:FONT_SIZE];
[self addSubview:title];
[title release];
}
ОК, то может вашу долю вашей initWithFrame: Код? Является initWithFrame: называется? – tonklon
Добавлен код. Я не думаю, что это полезно, но –
Этот код не отображает никаких кнопок, создаваемых или добавленных в представление. Не могли бы вы разместить код, в котором вы попытались добавить их в представление в -initWithFrame :? –