Как добавить подпредставление в 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
если вам нужны ячейки не полной ширины или заставьте вашу таблицу просмотреть нужную вам ширину.