删除UITableViewAccessory

时间:2016-10-18 18:46:55

标签: ios swift xcode uitableview

我将Chameleon添加到项目中,并且大部分工作都很顺利。在为项目设置主题时我偶然发现的一个问题是UITableViewCell附件的背景。

这是我的配件在启用ChameleonFramework主题时的样子:

enter image description here

我想要的配件颜色是蓝色,没有背景。变色龙似乎颠倒了这些。

我还打开了Debug View Hierarchy来查看正在进行的操作。我可以"看"问题,但我无法弄清楚如何进入附件视图的背景将其更改回UIColor.white,我也无法弄清楚如何将复选标记更改为UIColor.blue }

enter image description here

我试图在cellForRowAtIndexPath中使用以下命令修补附件的色调:

cell.tintColor = UIColor.blue

我也尝试更改accessoryView

的背景
cell.accessoryView!.tintColor = UIColor.blue
cell.accessoryView?.backgroundColor = UIColor.white

我也尝试更改tableView

的色调
tableView.tintColor = UIColor.blue

我非常感谢任何其他想法如何改变这一点。

2 个答案:

答案 0 :(得分:1)

Chameleon-RCI 2.1.0.2Xamarin一起使用时,使用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()