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

Posted

技术标签:

【中文标题】TabBar /“更多视图控制器” - 可能有黑色以外颜色的图标?【英文标题】:TabBar / "More View Controller" - Possible to have icons in colors other than black? 【发布时间】:2010-05-24 12:09:07 【问题描述】:

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

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

方法。

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

谢谢!

【问题讨论】:

【参考方案1】:

这有点晚了,但我更改更多控制器图标的方法是(不确定 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>

【讨论】:

【参考方案2】:

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

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

【讨论】:

这几乎是我所期望的。谢谢!【参考方案3】:

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

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

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

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

罗伯

【讨论】:

以上是关于TabBar /“更多视图控制器” - 可能有黑色以外颜色的图标?的主要内容,如果未能解决你的问题,请参考以下文章

在 SWIFT 3 中访问 UITabBarController 的“更多...”视图控制器

如何在更多视图控制器的导航栏中设置图像并将更多标签的颜色从白色更改为绿色..?

为单视图控制器使用情节提要或 xib?

在 iPhone 上更改 Tabbar 的颜色

多个视图控制器内的uitableview

iOS Swift TabBar状态栏文字颜色毛刺半白半黑