screenMonkey MonkeyMan
screenMonkey MonkeyMan

Reputation: 423

Disclosure indicator in tableView cell isn't showing

I have added cell.accessoryType = .disclosureIndicator in my cellForRowAt delegate, and I have also ticked it in the viewController UI options under "accessory". I also added margins to the tableView so that it's 0 in relation to the parent view (that is, the device).

I even set cell.accessoryView?.tintColor = UIColor.black in case something was wrong with the color. But, still, I can't see the little arrow on the right side of the cell. I'm using a default cell. And in other viewControllers that I have it works, but in this one it doesn't.

I checked the width for both the cell and the tableview and they are both 375.

It does work if I add a custom image instead, like this:

let img = UIImage.init(named: "arrow")
cell.accessoryView = UIImageView.init(image: img)

But, I want the standard arrow.

Any more tips on what could be the issue here?

Upvotes: 0

Views: 241

Answers (1)

Andras M.
Andras M.

Reputation: 838

If you're targeting iOS 13 this won't work. You can verify on iOS12 but I've faced this very problem earlier this year and the solution was to add a UIButton to the cell constraining it to the trailing side of the screen.

         let disclosureButton = UIButton()
        disclosureButton.setImage(UIImage(named: "arrow"), for: .normal)
        cell.addSubview(disclosureButton)
        disclosureButton.translatesAutoresizingMaskIntoConstraints = false
        disclosureButton.trailingAnchor.constraint(equalTo: cell.trailingAnchor, constant: -10).isActive = true
        disclosureButton.centerYAnchor.constraint(equalTo: cell.centerYAnchor, constant: 0).isActive = true
        disclosureButton.widthAnchor.constraint(equalToConstant: 25).isActive = true
        disclosureButton.heightAnchor.constraint(equalToConstant: 25).isActive = true

Upvotes: 1

Related Questions