2014-11-11 3 views
0

Имея несколько проблем с автоматической шириной пользовательского класса, я звоню. У меня он работает на высоту, но ширина постоянно усекает на ширину 320 пикселей. Думаю, я мог бы жестко закодировать каждое значение экрана, но это безумие. Я вызываю пользовательский класс в глобальный контроллер просмотра навигации.UINavigationBar - Autowidth

@implementation MyCustomNav 

- (CGSize)sizeThatFits:(CGSize)size { 
    CGSize newSize = CGSizeMake(self.frame.size.width,100); 
    return newSize; 
} 

@end 

Я также пробовал;

CGSize newSize = CGSizeMake(self.bounds.size.width,100); 

Я получаю тот же результат с усечением UINavigatorBar на каждом конце. Ниже снимок экрана.

Truncated UINavigationBar

Теперь я где-то читал, что это IOS 8 ошибка. Но я еще этого не подтвердил.

Любые идеи?

ответ

0

Хорошо, я заработал. С iOS8 я обнаружил, что для этого требуется немного другое форматирование, но в итоге это сработало. Ключ должен установить границы с основным экраном UIScreen. Также используйте границы, которые, похоже, работают лучше.

//Adjust the height of the NavigationBar 
- (CGSize)sizeThatFits:(CGSize)size { 
    CGSize newSize = CGSizeMake(self.frame.size.width,53); 
    [self setFrame:CGRectMake(0,0,[[UIScreen mainScreen] bounds].size.width,60)]; 
    return newSize; 
} 

Надежды, которые помогают кому-то.