Как добавить подпредставление в tableView cell.contentView swift

Я немного сбит с толку, где я должен объявить и как добавить subView в ячейку, чтобы сделать ячейку короче по ширине.

Я пытался использовать func viewWillLayoutSubviews(){} в своем классе tableViewCell, но я не могу получить доступ к tableView оттуда... странно..

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

В настоящее время этот код просто добавляет подпредставление к ячейке и вид плавающих над ячейкой вместо того, чтобы содержать ячейку. Я использую это в cellForRowAtIndexPath.

  let testFrame : CGRect = cell.contentView.frame
    var testView : UIView = UIView(frame: testFrame)
    testView.backgroundColor = UIColor.redColor()
    testView.alpha=0.5
    testView.bounds = CGRectMake(cell.bounds.origin.x,
        cell.bounds.origin.y,
        cell.bounds.size.width - 50,
        cell.bounds.size.height);
    //TableViewCell.addSubview(testView)
    cell.contentView.addSubview(testView)
    return cell

1 ответ

Решение

Подвид добавляется внутри ячейки, вы добавляете testView как вспомогательное представление представления содержимого ячейки. Рамка testView будет относительно представления содержимого ячейки (testViewсуперсмотр).

Не стоит менять ширину UITableViewCell потому что могут быть непреднамеренные побочные эффекты. Вы можете переопределить setFrame в подклассе UITableViewCell с которого вы возвращаетесь cellForRowAtIndexPath:, Более подробная информация здесь: Как установить ширину ячейки в UITableView в сгруппированном стиле

Вы должны посмотреть на UICollectionView если вам нужны ячейки не полной ширины или заставьте вашу таблицу просмотреть нужную вам ширину.

Другие вопросы по тегам