iOS - Изменение высоты UIBarButtonItem - PullRequest
2 голосов
/ 08 сентября 2011

У UIToolbar есть хорошая опция для изменения размера (self.navigationController.toolbar.frame). Интересно, кто-нибудь знает, как изменить высоту UIBarButtonItem?

У меня есть пользовательская панель инструментов с высотой 117 пикселей, и до сих пор я не нашел способа изменения кнопок на панели инструментов. Также мне нужно, чтобы она была панелью инструментов, потому что отображаемый вид покрывается другим анимированным видом (стиль обрезки сцены), пока я настраиваю активы в первом представлении, и панель инструментов должна оставаться наверху в течение всего этого.

Ответы [ 3 ]

9 голосов
/ 08 сентября 2011

Я на самом деле столкнулся с этим сам, и единственное, что я мог придумать, - это использовать initWithCustomView и передать UIButton с определенным кадром.

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

/*
* Insert button styling
*/

button.frame = CGRectMake(0, 0, width, height);

UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

В противном случае UIBarButtonItem имеет только свойство ширины, которое можно установить, но, к сожалению, не свойство высоты. Еще одна изящная вещь, которую я сделал с initWithCustomView - это перейти на панель инструментов с кнопкой и другими вещами, такими как индикаторы активности. Надеюсь, это поможет.

4 голосов
/ 08 сентября 2011

создайте UIButton с предпочитаемым фреймом, изображением, целевым объектом, селектором и т. Д., Затем используйте метод UIBarButtonItem initWithCustomView: и используйте UIButton в качестве пользовательского представления.

0 голосов
/ 03 октября 2012

Выполните три простых шага

1 Свойство записи:

@property (nonatomic, strong) IBOutlet UIToolbar *toolBarActive;
@property (nonatomic, strong) IBOutlet UIButton *uiButton;
@property (nonatomic, strong) IBOutlet UIBarButtonItem *uiButtonItem;

2 Синтез:

@synthesize toolBarActive = _toolBarActive;
@synthesize uiButton = _uiButton;
@synthesize uiButtonItem = _uiButtonItem;

3 Реализация записи:

-(UIToolbar *) toolBarActive {
    if( _toolBarActive == nil ) {
        _toolBarActive = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 380, 320, 40)];
        _toolBarActive.tintColor = [UIColor blackColor];  
        NSMutableArray *arrayItem = [[NSMutableArray alloc] init];
        [arrayItem addObject:self.uiButtonItem];
        [_toolBarActive setItems:arrayItem animated:YES];
    }
    return _toolBarActive;
}

- (UIButton *) uiButton {
    if( _uiButton == nil ) {
        _uiButton = [[UIButton alloc] initWithFrame:CGRectMake(5, 5, 50, 50)];
        [_uiButton addTarget:self action:@selector(deletePointFromTrip) forControlEvents:UIControlEventTouchUpInside];
        [_uiButton setImage:[UIImage imageNamed:@"editable.png"] forState:UIControlStateNormal];
    }
    return _uiButton;
}

- (UIBarButtonItem *) uiButtonItem {
    if( _uiButtonItem == nil ) {
        _uiButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.uiButton];
        [_uiButtonItem setEnabled:YES];
    }
    return _uiButtonItem;
}

Теперь, когда у вас есть uibutton на uibarbuttomitem, вы можете определить все свойства для uibutton, как, изображение, действие и т. Д.

...