Почему при добавлении изображения в навигационную панель возникают пробелы слева и справа?

StackOverflow https://stackoverflow.com/questions/2326995

Вопрос

UIImageView *navBarImageView = [[UIImageView alloc] initWithImage:navBarImage];
[navBarImageView setFrame:CGRectMake(0, 0, 320, 44)];
self.navigationItem.titleView = navBarImageView;
[navBarImageView release];

Я пытаюсь добавить изображение в свою панель навигации, но когда я использовал код, указанный выше, он помещает изображение в панель навигации, но оставляет серый зазор слева и справа от изображения.Изображение было создано размером 320x44, я не уверен, почему оно меняет размер, несмотря на то, что я устанавливаю рамку.

Это было полезно?

Решение

Это...вероятно, не так, как вы хотите это сделать — это не то, что titleView для.Обычный способ сделать собственный фон панели навигации — создать категорию на UINavigationBar, вот так:

 @implementation UINavigationBar(MyCustomBackground)
 - (void)drawRect:(CGRect)r
 {
      [[UIImage imageNamed:@"my-navigation-background.png"] drawInRect:self.bounds];
 }
 @end

Добавьте это в файл .m в свой проект, и вы увидите, что все ваши панели навигации используют «my-navigation-background.png» в качестве фона.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top