Я создал подкласс UIButton для своего приложения, и мне нужно вручную переместить titleLabel, чтобы он составлял около 1/4 высоты кнопки.эта почта;http://forums.macrumors.com/showthread.php?t=763140, кажется, напрямую решает ту же проблему, и решение является простым и совершенно понятным.Однако я не смог реализовать это, потому что мое переопределение layoutSubviews никогда не вызывается.Моя кнопка статична, поэтому layoutSubviews нужно вызывать только в первый раз, но это никогда не происходит.мой код:
@interface MyButton : UIButton {}
@implementation MyButton
- (id)initWithFrame:(CGRect)frame
{
self = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
[[self layer] setCornerRadius:14.0f];
[[self layer] setBorderWidth:3.0f];
[[self layer] setMasksToBounds:YES];
[self setBackgroundColor:[UIColor redColor]];
[self setFrame:frame];
return self;
}
- (void)layoutSubviews
{
NSLog(@"layout subs\n");
[super layoutSubviews];
}
@end
перемещение метки не будет проблемой, но layoutSubviews никогда не вызывается.Я также попытался добавить layoutIfNeeded, но это не имело никакого значения.Что еще более странно, я пытался вызвать [self layoutSubviews] непосредственно из конструктора, но layoutSubviews все еще не называется !.я начинаю думать, что это может быть даже ошибка в SDK 3.1.3
кто-нибудь может помочь?!