В альбомном режиме вертикальное выравнивание UIBarButtonItem слишком низкое - PullRequest
0 голосов
/ 23 июля 2011

Я добавляю заголовок на UIToolbar (iPad) со следующим кодом:

- (void)setupToolbarItems {
if (!toolbarItems) {
    UIBarButtonItem *flexSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 386.0, 20.0)];
    titleLabel.autoresizingMask = (UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth);
    titleLabel.textColor = [UIColor whiteColor];
    titleLabel.text = @"Hello";
    titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:20.0];
    titleLabel.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5];
    titleLabel.shadowOffset = CGSizeMake(0.0, -1.0);
    titleLabel.textAlignment = UITextAlignmentCenter;
    titleLabel.backgroundColor = [UIColor clearColor];
    UIBarButtonItem *titleLabelItem = [[UIBarButtonItem alloc] initWithCustomView:titleLabel];
    toolbarItems = [[NSArray alloc] initWithObjects:flexSpacer, titleLabelItem, flexSpacer, nil];
    [titleLabel release];
    [flexSpacer release];
    [titleLabelItem release];
}

[self setItems:self.toolbarItems animated:NO];
}

Все отлично работает в портретной ориентации, но в альбомной ориентации метка находится слишком далеко внизу.UIBarButtonItem не является представлением, поэтому у меня нет возможности отрегулировать его положение из моего кода, насколько я вижу ... как я могу это исправить?

Портрет:In Portrait

Пейзаж:In Landscape

1 Ответ

0 голосов
/ 23 июля 2011

Добавьте UIViewAutoresizingFlexibleHeight к вашему titleView. Вы не позволяете ему сжать этикетку.

...