0

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

- (id)initWithTitle:(NSString *)title image:(UIImage *)image tag:(NSInteger)tag

方法。

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

谢谢!

4

3 回答 3

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>
}
于 2011-02-03T10:39:19.047 回答
1

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

因此,您可以继承 TabBar 或 ToolBar 并实现自己的按钮来绘制整个栏。

于 2010-05-24T12:16:59.603 回答
0

另一个想法是让另一个 XIB 文件充当工具栏或选项卡栏。您可以让它看起来完全一样,甚至可以像工具栏或标签栏一样在视图中显示动画。然后,您可以通过 App Delegate 或 Singleton 传递全局变量,以便在必要时与其他活动视图共享。

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

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

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

于 2010-05-24T15:05:37.373 回答