Кнопка не регистрирует нажатия

Кнопка в этой ячейке не регистрирует нажатия. Оператор печати в downloadEpisode() не печатается, и кнопка не выделяется/не меняет цвет при нажатии. Однако ячейка представления таблицы выбирается, когда я нажимаю кнопку. Я думал, что ячейка находится ниже представления кнопки, но это не так (я проверил в иерархии представлений пользовательского интерфейса).

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
    let cell: PFTableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! PFTableViewCell
    if let title = object?["title"] as? String {
        cell.textLabel?.text = title
    }
    let downloadButton = UIButton(type: .RoundedRect)
    downloadButton.frame = CGRectMake(cell.contentView.bounds.width - 100, cell.contentView.bounds.height / 2, 100, 0)
    downloadButton.setTitle("Download", forState: .Normal)
    downloadButton.setTitleColor(UIColor.blueColor(), forState: .Normal)
    downloadButton.setTitleColor(UIColor.redColor(), forState: .Selected)
    downloadButton.tag = indexPath.row
    downloadButton.addTarget(self, action: "downloadEpisode:", forControlEvents: .TouchUpInside)
    cell.contentView.addSubview(downloadButton)
    cell.contentView.bringSubviewToFront(downloadButton)
// using cell.addSubview(downloadButton) doesn't work either.


    return cell
}

person user2747220    schedule 22.08.2015    source источник


Ответы (1)


Не уверен, что это когда-нибудь поможет кому-то еще, но вот решение:

    downloadButton.frame = CGRectMake(cell.contentView.bounds.width - 100, cell.contentView.bounds.height / 2, 100, 0)

должно быть

     downloadButton.frame = CGRectMake(cell.contentView.bounds.width - 100, cell.contentView.bounds.height / 2, 100, 40)

Высота кнопки была равна 0, что было сделано намеренно, потому что текст по-прежнему будет отображаться нормально, и я думал, что сенсорная область будет просто текстом, но оказалось, что это не работает.

person user2747220    schedule 23.08.2015
comment
Спасибо за ответ :) Это поможет другим. - person Peter Hornsby; 29.12.2015