TabBar /“更多视图控制器” - 可能有黑色以外的颜色图标?

时间:2010-05-24 12:09:08

标签: iphone objective-c cocoa-touch uitabbaritem

是否可以将TabBar和/或“更多导航控制器”中的图标设置为灰色和黑色以外的颜色?我尝试使用UITabBarItem的

更改我为视图控制器设置的图标的颜色
- (id)initWithTitle:(NSString *)title image:(UIImage *)image tag:(NSInteger)tag

方法

我的客户认为界面太暗,想要用一些彩色图标照亮它......

谢谢!

3 个答案:

答案 0 :(得分:5)

稍微迟了一点,但我改变更多控制器图标的方法是(并且不确定Apple是否会批准它)执行以下操作:

id moreNavController = [tabs.moreNavigationController.viewControllers objectAtIndex:0];
if ([moreNavController respondsToSelector(@selector(view)]) {
    UITableView *t = (UITableView*)[moreNavController view];
    [t setDataSource:self];
}

然后我只实现UITableViewDatasourceProtocol方法

-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{
  id o =[tabs.moreNavigationController.viewControllers objectAtIndex:0];
  return [o tableView:tableView numberOfRowsInSection:section]; //let the existing data source actually return the number of rows
}

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {
 /* configure cell as normal with what ever image in the imageView property*/ 
  cell.imageView.image = <someimageobj>
}

答案 1 :(得分:1)

Nope :(标签栏或工具栏上的按钮是使用Alpha通道绘制的,所以尽管.png有,但它们没有颜色。

因此,您可以对TabBar或ToolBar进行子类化,并实现绘制整个条形图的自己的按钮。

答案 2 :(得分:0)

另一个想法是让另一个XIB文件充当各种工具栏或标签栏。您可以使其看起来完全相同,甚至可以像工具栏或标签栏一样进入视图。然后,您可以通过App Delegate或Singleton传递全局变量,以便在必要时与其他活动视图共享。

在视图中添加子视图的一个很好的例子是这里找到的“隐藏抽屉”示例代码(只是更改屏幕尺寸,因为此版本在顶部弹出视图,而您希望它在底部)。 / p>

http://cocoawithlove.com/2009/05/intercepting-status-bar-touches-on.html

如果您无法理解,请告诉我,我在家里有工作代码,我可以在这里为您发布。

罗布