Ode*_*Dov 23
(必须坦率地说 - 我在发布之前知道了答案,只是不知道如何将这些数据加载到StackOverflow.认为我发现的解决方案对其他人很有价值,所以想在这里发布.我是新来的,所以请没有严厉的批评:))
因此,最终问题是由于AFAICT导致操作系统中的行为发生了变化.
如上所述,色调代码在升级之前工作,并且如下所示:
// Toolbar content
NSArray *items=[NSArray arrayWithObjects: ... ]; // PSEUDO CODE HERE
[toolbar setItems:items];
// Add tint
toolbar.tintColor = [UIColor colorWithRed:0.83 green:0.43 blue:0.57 alpha:0.5];
Run Code Online (Sandbox Code Playgroud)
我需要做的只是颠倒事物的顺序:
// Add tint
toolbar.tintColor = [UIColor colorWithRed:0.83 green:0.43 blue:0.57 alpha:0.5];
// Toolbar content
NSArray *items=[NSArray arrayWithObjects: ... ]; // PSEUDO CODE HERE
[toolbar setItems:items];
Run Code Online (Sandbox Code Playgroud)
(如果您在Interface Builder中创建了UIToolbar,则可以在那里更改它的色调,这也适用于按钮).
我想色调在iOS 4之前更新了所有按钮,而在iOS 4中它没有,当添加按钮时,它们检查现有的色调.但这只是猜测.解决方案无论如何都有效..
希望这有助于某人,并且我没有违反任何神圣的SO规则......
干杯!
小智 10
好吧,它似乎更像是操作系统错误,而不是功能,因为导航栏在设置tintColor时会改变项目的颜色.
我们发现,如果您更改项目的样式,它会将其颜色刷新为副作用.在我们的案例中做了以下工作.原始按钮有边框,因此我们将它们更改为plain并将它们设置为再次接边.您可以执行更复杂和通用的代码来保存当前样式,设置另一个然后再切换回来.我只是懒得那样做.:D无论如何,你明白了.
toolbar.tintColor = //<some dynamically obtained UIColor>
// Workaround to properly set the UIBarButtonItem's tint color in iOS 4
for (UIBarButtonItem * item in toolbar.items)
{
item.style = UIBarButtonItemStylePlain;
item.style = UIBarButtonItemStyleBordered;
}
Run Code Online (Sandbox Code Playgroud)
此致,鲁拉.
| 归档时间: |
|
| 查看次数: |
18619 次 |
| 最近记录: |