我将Chameleon添加到项目中,并且大部分工作都很顺利。在为项目设置主题时我偶然发现的一个问题是UITableViewCell附件的背景。
这是我的配件在启用ChameleonFramework
主题时的样子:
我想要的配件颜色是蓝色,没有背景。变色龙似乎颠倒了这些。
我还打开了Debug View Hierarchy来查看正在进行的操作。我可以"看"问题,但我无法弄清楚如何进入附件视图的背景将其更改回UIColor.white
,我也无法弄清楚如何将复选标记更改为UIColor.blue
}
我试图在cellForRowAtIndexPath
中使用以下命令修补附件的色调:
cell.tintColor = UIColor.blue
我也尝试更改accessoryView
:
cell.accessoryView!.tintColor = UIColor.blue
cell.accessoryView?.backgroundColor = UIColor.white
我也尝试更改tableView
:
tableView.tintColor = UIColor.blue
我非常感谢任何其他想法如何改变这一点。
答案 0 :(得分:1)
将Chameleon-RCI 2.1.0.2与Xamarin一起使用时,使用UITableViewCellAccessory.DetailDisclosureButton
时遇到了同样的问题。
UITableViewCell cell = tableView.DequeueReusableCell("A");
if (cell == null)
{
cell = new UITableViewCell(UITableViewCellStyle.Subtitle, "A");
cell.Accessory = UITableViewCellAccessory.DetailDisclosureButton;
}
与Adrian的答案类似,但使用C#,AppDelegate
类中的修复程序如下。
public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
{
// Override point for customization after application launch.
// If not required for your application you can safely delete this method
UIColor secondaryColor = ChameleonColor.FlatWatermelon;
Chameleon.SetGlobalTheme(ChameleonColor.FlatMint, secondaryColor, ContentStyle.Contrast);
UIButton.UIButtonAppearance buttonAppearance = UIButton.AppearanceWhenContainedIn(new Type[] { typeof(UITableViewCell) });
buttonAppearance.BackgroundColor = UIColor.Clear;
buttonAppearance.TintColor = secondaryColor;
return (true);
}
答案 1 :(得分:0)
显然,这是Chameleon目前正在处理的一个错误。
在Debug View Hierarchy中挖掘,我看到复选标记被绘制为UIButton
。而不是在MyViewController
上更改它,我选择在AppDelegate中更改UIButton类的外观,当它包含在UITableViewCell
中时。
我可以通过从AppDelegate调用以下命令来解决我的问题:
UIButton.appearance(whenContainedInInstancesOf: [UITableViewCell.classForCoder() as! UIAppearanceContainer.Type]).backgroundColor = UIColor.clear
UIButton.appearance(whenContainedInInstancesOf: [UITableViewCell.classForCoder() as! UIAppearanceContainer.Type]).tintColor = FlatBlue()