2013-04-07 3 views
1

Я хотел бы удалить эффект градиента, который возникает в UINavigationBar и UITabBar. На следующем рисунке показана примерная панель вкладок с использованием пользовательского UIColor 7/29/88 (RGB), установленного с использованием setTintColor:color, и, как вы можете видеть, панель вкладок имеет блеск в верхней половине панели.Удалить эффект блеска/градиента от баров навигации/вкладок

enter image description here

Как удалить это?

ответ

2

Невозможно. Однако вы можете использовать пользовательские фоновые изображения. Проверка UIAppearance документация

+0

Я должен был убедиться в этом из документации - так или иначе убедил себя, что я сделал что-то неправильно! Спасибо за ссылку. Приветствия. – Federer

+1

Проверьте этот учебник http://www.raywenderlich.com/21703/user-interface-customization-in-ios-6. Другой вариант - использовать PrettyKit, найти на Github. – Shmidt

+1

можно легко устранить стандартный эффект заполнения как для UITabBar, так и для UINavigationBar. См. Мой ответ. – XJones

2

Я удаляю эффект градиента с моей навигационной панели, вы можете попробовать этот код и посмотреть, работает ли он для вас.

//First, create your own Navigation Bar Class, and add this to your init method. 

self.tintColor = [UIColor clearColor]; 
self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage"]]; 

//Add this to your DrawRect method 
- (void)drawRect:(CGRect)rect { 
    UIColor *color = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage"]]; 
    //If you want a plain color change this 

    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetFillColor(context, CGColorGetComponents([color CGColor])); 
    CGContextFillRect(context, rect); 
} 
6

В зависимости от вашего определения "удалить". В iOS 6.x (не тестировалось iOS 4/5) работает следующее.

// this will show a tab bar with a solid background color 
tabBar.backgroundImage = [UIImage new]; 
tabBar.backroundColor = [UIColor blueColor]; 

// this will show a navigation bar with a solid background color 
[navBar setBakgroundImage:[UIImage new] 
      forBarMetrics:UIBarMetricsDefault]]; 
navBar.shadowImage = [UIImage new]; 
navBar.backgroundColor = [UIColor blueColor]; 
navBar.tintColor = [UIColor blueColor]; 
Смежные вопросы