как переместить заголовок в панель навигации iphone - PullRequest
0 голосов
/ 11 февраля 2010

Хотелось бы показать всем вам картинку, но у меня есть две кнопки в правом верхнем углу моей навигационной панели и кнопка обновления слева. Заголовок находится посередине, но первые две буквы перезаписываются одной из кнопок справа.

Как мне «подтолкнуть» мой заголовок (или заголовок - любой), чтобы заголовок немного сдвинулся? Я хочу переместить его на 60 пикселей вправо.

Код ниже делает то, что я хочу - НО - по какой-то причине теперь кнопки не работают. Код для кнопок идентичен тому, что я использовал раньше (и что раньше работало), с той лишь разницей, что теперь он хранится в панели инструментов / массиве инструментов.

Есть идеи, почему мои кнопки теперь отключены?

// creating the two center buttons in the navigation bar
// create a toolbar to have two buttons in the right
UIToolbar* tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 0, 44.01)];

// create the array to hold the buttons, which then gets added to the toolbar
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:5];


// create a non-bordered button (ends up looking like a title)
UIBarButtonItem *bi = [[UIBarButtonItem alloc] initWithTitle:@"Photos" style:UIBarButtonItemStylePlain   target:self action:NULL];
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:NULL];
    [buttons addObject:bi];
[bi release];


// create a spacer
bi = [[UIBarButtonItem alloc]
      initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
[buttons addObject:bi];
[bi release];


// create another button with a camera icon
bi = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(showPhotoPicker)];
bi.style = UIBarButtonItemStyleBordered;
[buttons addObject:bi];
[bi release];


// create a spacer
bi = [[UIBarButtonItem alloc]
      initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
[buttons addObject:bi];
[bi release];


// create another button with 'your photos'
bi = [[UIBarButtonItem alloc] initWithTitle:@"your photos" style:UIBarButtonItemStyleBordered   target:self action:@selector(showUserGallery)];
bi.style = UIBarButtonItemStyleBordered;
[buttons addObject:bi];
[bi release];

Ответы [ 2 ]

0 голосов
/ 31 марта 2011

Мириам, может быть, следующий код мог бы помочь тебе.Внутри viewDidLoad моего NavBarController я использую его, чтобы поместить изображение немного правее центра моего NavBar, вместо использования стандартного «текста заголовка».И «Кнопка возврата» продолжает работать нормально для меня.

UINavigationBar *navBar = [self navigationBar];
//inside the CGRectMake(), I can change the POSITION of my image, putting it anywhere.
UIView* imgContainer = [[UIView alloc] initWithFrame:CGRectMake(90, 10, 50, 80)];

UIImageView *imageView = (UIImageView *)[navBar viewWithTag:kSCNavBarImageTag];
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nav-bar-bg.png"]];
[imageView setTag:kSCNavBarImageTag];

[imgContainer addSubview:imageView];
[self.navigationBar addSubview:imgContainer];

UIColor *myColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
[navBar setTintColor:myColor];

[imageView release];

Я думаю, что вы можете использовать тот же подход: создайте «viewContainer» (вместо imageContainer в моем случае) и поместите в него свой заголовок.Я не пробовал это с вашим сценарием, но, возможно, это работает.

Надеюсь, это поможет вам.С уважением.

0 голосов
/ 12 февраля 2010

Я не думаю, что вы можете изменить рамку заголовка. Это означает, что вы можете только взломать; 1) добавить пробел в начале. 2) оставьте заголовок пустым и создайте новый ярлык - поместите этот ярлык на navBar.

Надеюсь, это поможет, вот о чем я мог бы подумать прямо сейчас. ~ Натанавра.

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