UITabbarController неправильно рисует вид - PullRequest
1 голос
/ 02 июля 2010

У меня есть uitabbarcontroller, к которому добавлен один UIViewController.(Я уменьшил до наименьшего возможного случая).Этот viewcontroller вызывает UIView, который рисует UIButton через:

- (void)drawRect:(CGRect)rect 
{
    CGRect brect = CGRectMake(0, 330, 60, 27);
    CGPoint centern=CGPointMake(CGRectGetMidX(brect), CGRectGetMidY(brect) );
    UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button setFrame:brect];
    [button setCenter:centern];
    [button setTitle:@"New" forState:UIControlStateNormal];
    [self addSubview:button];
 }

Кнопка нарисована без внутреннего текста.Только когда я касаюсь дисплея, он рисуется правильно.

Мое решение было следующее: Дайте контроллеру панели вкладок два UIViewController для управления.Затем форсируйте ничью второго, а затем вернитесь к первому:

tabBarController.selectedViewController = [tabBarController.viewControllers objectAtIndex:1];
tabBarController.selectedViewController = [tabBarController.viewControllers objectAtIndex:0];

Это решение работает, но это глупый взлом.Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 02 июля 2010

Код, который вы разместили, кажется, не вписывается в реализацию drawRect :.Вы должны добавить этот код в свою реализацию init views или в свою реализацию viewControllers loadView или viewDidLoad.

Эти две строки не делают ничего полезного, вы можете их пропустить:

CGPoint centern=CGPointMake(CGRectGetMidX(brect), CGRectGetMidY(brect) );
[button setCenter:centern];

Всякий раз, когдаВы устанавливаете рамку в представлении, центр представлений неявно устанавливается в среднюю точку кадров (центр).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...