2015-03-27 2 views
1

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

Я пытался использовать функ 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:. Больше информации здесь: How to set the width of a cell in a UITableView in grouped style

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

+0

Хм, странно, я смог сделать это для tableView и сделать весь tableView более коротким. С ячейкой, хотя она просто добавляет красное подобие цвета поверх содержимого ячейки, вместо того, чтобы на самом деле subview становится новой ячейкой. Как я могу сделать ячейку в подсмотре, а не за ней? –

+0

Вы не можете поместить ячейку в свой собственный вид. Он управляется 'UITableView'. Похоже, вам следует рассмотреть руководство Apple по Views, в частности, «Создание и управление иерархией представлений»: https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/CreatingViews.html#//apple_ref/doc/uid/TP40009503-CH5-SW47 – bjtitus

+0

Не могли бы вы объяснить, как она здесь может быть здесь? http://natashatherobot.com/ios-frame-vs-bounds-resize-basic-uitableview-cell/ –

Смежные вопросы