更改单元格选择上的披露指示颜色

时间:2012-07-10 06:25:55

标签: iphone objective-c ios ipad

我已经阅读了一些关于此的帖子,但仍然无法得到我的问题的答案。

我有披露指标。 enter image description here

我这样添加:

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

一切正常并且很好,我唯一要改变的是当我按下单元格时,披露指示器会将颜色变为白色。 enter image description here我不希望这样。所以我的问题是如何使披露指标颜色固定,而不是改变?

7 个答案:

答案 0 :(得分:11)

您需要使用自定义附件视图。 语法:

cell.accessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"accessory.png"]] autorelease];

在这里您要为图像视图指定图像 accessory.png

到您的手机配件视图。

答案 1 :(得分:2)

Swift 3

添加自定义配件视图:

示例1:

cell.accessoryView = UIImageView(image: UIImage(named: "accessory.png"))

示例2:

嵌套在小型源图像的视图容器中:

let accessoryView = UIView(frame: CGRect(x: 0, y: 0, width: 24, height: 50))
let accessoryViewImage = UIImageView(image: UIImage(named: "accessory.png"))
accessoryViewImage.center = CGPoint(x: 12, y: 25)
accessoryView.addSubview(accessoryViewImage)

cell.accessoryView = accessoryView

答案 2 :(得分:1)

您可以尝试使用uiimageview来应用cell accessoryType,如下面的代码:

cell.accessoryView = myAccessoryUIImageView;

cell accessoryview uiimageview未正确对齐尝试下面的代码:

    UIView* accessoryView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 24, 50)];
    UIImageView* accessoryViewImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"accessory_image.png"]];
    accessoryViewImage.center = CGPointMake(12, 25);
    [accessoryView addSubview:accessoryViewImage];
    [cell setAccessoryView:accessoryView];
    [accessoryViewImage release];//not use this line your ios sdk in 5.0 and above! 
    [accessoryView release];//not use this line your ios sdk in 5.0 and above! 

答案 3 :(得分:1)

尝试这样的事情。也许你将能够达到你想要的效果。

shops: id, name, ...
products: id, shop_id, ...
orders: id, ...
order_details: id, order_id, product_id, ...

答案 4 :(得分:0)

我遇到了同样的问题,发现即使你正在努力解决这个问题......虽然答案很晚但我通过编写以下内容解决了我的问题,

cell.selectionStyle = UITableViewCellSelectionStyleNone;

选择后,附件类型UITableViewCellAccessoryDisclosureIndicator停止为白色。

希望这会有所帮助。

答案 5 :(得分:0)

Swift 3 - 一个简单的Table View类,可以在配置单元格时使用showsDisclosure布尔值显示公开指示符。现在,显示箭头色调颜色是硬编码的,但是如果你想要一个更可重复使用的单元格,你的颜色选择也可以很容易地通过configure函数传递。

请注意' chevron'将图像设置为资产目录中的模板图像,这意味着它可以着色为颜色。您也可以使用以下代码将UIImage转换为模板图像:UIImage(named: "chevron")?.withRenderingMode(.alwaysTemplate)

class HeaderTableViewCell: UITableViewCell {

    @IBOutlet weak var sectionTitle: UILabel!

    override func awakeFromNib() {
        sectionTitle.textColor = .black
    }

    func configure(title: String, showsDisclosure: Bool = false) {
        self.sectionTitle.text = title

        if showDisclosure {
            //add custom disclosure arrow
            let chevronImgView = UIImageView(image: UIImage(named: "chevron"))
            chevronImgView.tintColor = .red
            self.accessoryType = .disclosureIndicator
            self.accessoryView = chevronImgView
        } else {
            self.accessoryType = .none
            self.accessoryView = nil
        }
    }
}

答案 6 :(得分:-2)

[[UITableViewCell外观] setTintColor:[UIColor redColor]];