У меня есть собственный подкласс UISegmentedControl. Это кнопки больше стандартного размера. Каждая кнопка имеет ширину 100.0 пунктов.
@implementation SegmentedControlExplore
- (id) init
{
return [super
initWithItems:[NSArray arrayWithObjects:
@"Uno",
@"Dos",
nil
]
];
}
- (void) layoutSubviews
{
for (NSUInteger i = 0; i < self.numberOfSegments; i++) {
[self setWidth:100.0 forSegmentAtIndex:i];
}
[super layoutSubviews];
}
@end
Когда я пытаюсь использовать это в моем контроллере, я не могу центрировать его в UINavigationBar.
SegmentedControl* sc = [[[SegmentedControl alloc] init] autorelease];
[self.navigationController.navigationBar addSubview:sc];
sc.center = self.navigationController.navigationBar.center;
Смещено вправо. Причина в том, что настройка размера кнопки фактически вызывается после изменения ее свойства center. Так куда мне перенести настройку размера кнопки, чтобы она была сделана первой? Я попытался переместить его в init, но размер не изменился.