- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我最近注意到 tintColor
属性的行为在最近的 iOS 10 更新之一中发生了显着变化。
我有一段代码,以前运行良好,现在根本无法运行。
在我的一个应用程序中,我有一个 UIBarButtonItem
集合,它们被添加到 View Controller 的 toolbarItems
数组中。它们显示良好。
但是,有时我想更改某些项目的色调以响应用户操作。代码很简单:
flagButton.tintColor = [UIColor redColor];
这段代码以前可以用,现在不行了!我已验证对 UIBarButtonItem
的引用存在并且这行代码已执行。然而,色调颜色并没有像它应该的那样改变。
在 tintColor
属性的描述中它说:
To refresh subview rendering when this property changes, override the tintColorDidChange() method.
我尝试添加 tintColorDidChange
方法,但它没有被调用。我在这个阶段的假设是,一旦 tintColor
改变,我的按钮就不会自动刷新。
有人可以帮忙找到一种手动刷新它的方法吗?该按钮是带有图像的标准 UIBarButtonItem
。
实际上我注意到,如果我更改工具栏的 tintColor
而不是单个项目,代码就可以正常工作。似乎由于某种原因,在单个项目上设置色调颜色不再有效。有谁知道为什么会这样?
多亏了 matt 的提示,我才能够找到问题的根源。这是由应用程序启动时执行的代码引起的:
[[UITableViewCell appearance] setTintColor:[ColourTheme sharedTheme].navBackground];
现在,我完全不明白为什么这一行会导致 UIBarButtonItem
色调出现问题...这可能是因为它在 UIAppearance
中引入了一些歧义。无论如何,因为我自己不再需要这条线,所以我可以轻松地将其删除。我仍然会保留我的问题,因为我认为这种行为非常奇怪,所以在某种程度上,这个问题仍然没有答案。
作为附加信息 - 遇到这些问题的 View Controller 中包含一个 TableView 。
最佳答案
我无法重现任何问题。在这里您可以看到我们正在交替使用红色和绿色之间的右侧栏按钮项目的色调;这是通过直接在代码中设置条形按钮项目的 tintColor
来完成的:
let c = self.replyButton.tintColor
if c == UIColor.red {
self.replyButton.tintColor = .green
} else {
self.replyButton.tintColor = .red
}
因此我得出结论,您所看到的问题是由您未告诉我们的其他原因引起的。
关于ios - UIBarButtonItem 色调颜色不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41743871/
我有一个简单的 UITableViewController 和一个 NavigationController 作为 Root View Controller 。我在导航栏中添加了“选项”UIBarBu
我正在尝试 this Apple tutorial但我发现了一个错误。有人可以帮助我吗? Disable Saving When the User Doesn't Enter an Item Name
我有一个 UIBarButtonItem 和 UIButton 作为自定义 View 。 UIButton 上有一个 addTarget:action:。在 Action 中,我展示了一个弹出窗口。我
我正在学习 iOS 开发,有两个简单且相关的问题: 1. 如何将多行项目添加到一个 UIToolBar 中,这可能吗?我想要一个 UISearchBar 和一个 UIToolbar 上的两行 UIBa
这就是我自定义 UIBarButtonItem 的方式: if DBAppSettings.imageViewForCartBarButtonItem == nil { DBAppSettin
有没有办法让UIBarButtonItem独家触摸?目前,您可以同时选择多个,但它不断使我的应用程序崩溃。 最佳答案 比继承导航栏更简单的方法,但思路相同; for(UIView *temp in s
如何在 uitoolbar 内旋转 uibarbuttonitem?因为我旋转了 uitoolbar(现在是垂直的)并且我的栏按钮项目也旋转了,但我不希望这样。 谢谢 最佳答案 UIBarButton
我创建了一个具有半透明黑色样式的工具栏,如下所示: UIToolbar *toolbar = [UIToolbar new]; toolbar.barStyle = UIBarStyleBlack;
有没有办法以动画方式启用或禁用按钮?我尝试了以下方法但没有成功。我猜测此时启用的属性无法像不透明度一样进行动画 - 但我希望我是错的。 [UIView beginAnimations:nil
在 IB 中,我可以选择一个 UIBarButtonItem,将其设置为“普通”、“自定义”并应用图像,它在 UIToolbar 或 UINavigationBar 中看起来不错。 当我尝试在代码中执
我需要更改 UIBarButtonItem 标题的字体。目前是 barbuttonItem.customView = customLabel。现在我希望添加一个选择器和目标,以便我可以获得 touch
我正在尝试偏移应用程序中的 UIBarButtonItems,由于我用于导航栏的图像,我需要它们稍微偏移,以便它们全部正确排列。我已经成功地做到了这一点: [[UINavigationBar appe
我希望使用标签访问 UIToolbar 上的 UIBarButtonItem。代码如下所示 UIBarButtonItem *myBarButtonItem=(UIBarButtonItem*)myU
我有一个自定义按钮,我想添加到导航栏上。到目前为止,这就是我的 RootViewController 中的内容(它继承了 UIViewController,UINavigationController
每当“userInput”UITextField 中没有输入时,我尝试禁用我的发送按钮(工具栏中的 UIBarButtonItem),并在有输入时启用它。这是我写的代码 - 我不太明白为什么它不起作用
我添加了一个 UIToolbar 实例和其顶部的按钮。每个按钮都属于 UIBarButtonItem 类。 我的要求是每个按钮都有一个自定义布局,我不想使用Apple提供的原生按钮样式。所以我在 In
你能看到按钮左边的距离吗?如何消除这个距离? 最佳答案 在按钮左侧添加一个间隔符,例如: UIBarButtonItem *backButtonItem = ....; UIBarButtonItem
我知道有些人已经问过这个问题,但到目前为止,答案还不是很具体。 显然苹果已经使导航栏的点击区域比实际更大,但我认为它不应该那么大。 在我的应用程序中,导航栏正下方有一个 TableView,您可以一直
我已经为 UINavigationBar 设置了自定义色调颜色(在 UINavigationController 内),这又为 UIBarButtonItems 设置适当的匹配颜色。插入 UINavi
我有一个带有两个 View 的导航栏应用程序:父 View 和 subview 。在 subview 中,我在右上角添加一个按钮,如下所示: - (void)viewDidLoad { UIB
我是一名优秀的程序员,十分优秀!