UIBarButton обрезается на устройстве под управлением iOS выше 4.0.1

#iphone #objective-c

#iPhone #objective-c

Вопрос:

Я создаю панель инструментов над клавиатурой, чтобы отобразить кнопку «Готово». Я использую sdk 4.2 для сборки проекта, однако при его рендеринге на устройстве под управлением iOS 4.2.1 кнопка обрезается. То же самое отлично работает на устройстве под управлением iOS 4.0.1, та же проблема сохраняется, даже когда я запускаю тот же код в симуляторе для дисплея Retina.

     aToolBar = [[UIToolbar alloc] init];
    aToolBar.tintColor = self.navigationController.navigationBar.tintColor;
    UIBarButtonItem *whiteSpace = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace 
                                                                                 target:nil action:nil]autorelease];
    UIBarButtonItem *doneButton = [[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(doneButtonPressed)]autorelease];
    aToolBar.items = [NSArray arrayWithObjects:whiteSpace,doneButton,nil];

    CGRect myToolBarRect = CGRectMake(0, self.view.frame.size.height-248, 320, 32);
    aToolBar.frame = myToolBarRect;
    [self.view addSubview:aToolBar];
  

введите описание изображения здесь

есть какие-либо подсказки в этом???

Комментарии:

1. Вы устанавливаете рамку где-нибудь?

2. Я добавил весь код. Да, я устанавливаю рамку.

Ответ №1:

Странно. Это поведение срабатывает при любой высоте, меньшей 44. Является ли это преднамеренным, трудно сказать, поскольку я не смог найти никакой документации по этому поводу, но Apple (в HIG) рекомендует использовать минимальную высоту 44, поскольку любая меньшая высота затруднила бы взаимодействие пользователей.

Комментарии:

1. Спасибо, я установил ширину панели инструментов равной 44, и она работает абсолютно нормально.