web-dev-qa-db-ja.com

Swift tableViewセルセットアクセサリタイプ

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    @IBOutlet
    var tableView: UITableView
    var items: String[] = ["We", "Heart", "Swift"]

    override func viewDidLoad() {
        super.viewDidLoad()
        self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "myCell")
    }


    func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
        return self.items.count;
    }

    func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {

        var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("myCell") as UITableViewCell

        cell.textLabel.text = self.items[indexPath.row]
        cell.accessoryType = UITableViewCellAccessoryType.DetailDisclosureButton
        cell.selectionStyle = UITableViewCellSelectionStyle.Blue
        tableView.separatorStyle = UITableViewCellSeparatorStyle.None
        return cell
    }

    func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
        println("You selected cell #\(indexPath.row)!")

    }
}

私の問題は、accessoryTypeとselectionStyleが変更されないことです。 tableView.separatorStyleはcell.textlabel.textと同様に変更されます。どうすれば修正できますか?

17
user3748930

cellForRowAtIndexPathメソッドで設定する運がなかったため、willDisplayCellに移動すると表示されない問題を修正しました。

override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    cell.accessoryType = .DisclosureIndicator
}
7
Derek Hewitt

これに関する私の経験を共有したいのですが、同じ問題がありました、cell.accessoryType = IUTableViewCellAccessoryType.Checkmarkそして、テーブルビューに制約がないことに気づいたので、不足している制約を追加して、それがうまくいった

1
Seelass

以下は、accessoryViewを「sentIcon」という名前のアイコンとして設定します。念のため!!!

        let sentImage = UIImage(named: "sentIcon")
        let sentImageView = UIImageView(image: sentImage)
        sentImageView.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
        sentImageView.tintColor = .lightGray
        cell.accessoryView = sentImageView
0
coders