Вариант 1
Вкратце о чем нужно помнить!
Самое главное, если вы используете какие-то переменные из приват фреймверков и для них не прописаны property, обязательно пропишите! Иначе при компиляции на эти переменные будет ругаться компилятор к примеру так:
1
2
3
4
|
"_OBJC_IVAR_$_UITabBarItem._selectedImage", referenced from :
_OBJC_IVAR_$_UITabBarItem._selectedImage$non_lazy_ptr in UICategory.o
ld : symbol (s ) not found
collect2 : ld returned 1 exit status
|
Рассказывать тут не очем кроме quartz, но о нем я расскажу в следующем посте подробнее, как появится время. Смотрите исходники, кода немного :), основные файлы ExtendsForTabBar.h и m. Исходники ниже.
Вариант 2
Можно взять за основу UITabBar и создать свой объект а не переписывать методы существующего. Хотя в конечном итоге и в этом случае мы переписываем методы.
Добавив два файла пустого NSObject к примеру с именем MyTabBar. В файле h вместо NSObject напишем UITabBar.
В m файе напишем:
1
2
3
4
5
|
- (void) drawRect:(CGRect)rect {
self.frame = CGRectMake(0, 409, 320, 71);
UIImage *img = [UIImage imageNamed:@"tabbarbg2.png"];
[img drawInRect:CGRectMake(0, 0, 320, 71)];
}
|
Далее в MainWindow.xib сделать все как на скриншотах, сохранить и скомпилировать.
Исходники
Чтоб найти еще что-то подобное достаточно набрать: “Custom Colors UITabBar UITabBarItem”, “How to custom UITabBar” и подобное.