Я только что видел в Facebook SDK для iOS, они называют [super layoutSubviews]; в конце, а не в начале метода layoutSubviews. Насколько я знаю, мы всегда должны делать это как первая строка. Это может привести к неожиданному поведению для пользовательского интерфейса?
- (void)layoutSubviews
{
CGSize size = self.bounds.size;
CGSize longTitleSize = [self sizeThatFits:size title:[self _longLogInTitle]];
NSString *title = (longTitleSize.width <= size.width ?
[self _longLogInTitle] :
[self _shortLogInTitle]);
if (![title isEqualToString:[self titleForState:UIControlStateNormal]]) {
[self setTitle:title forState:UIControlStateNormal];
}
[super layoutSubviews];
}