通用CollectionView快速

时间:2018-07-09 03:35:51

标签: swift generic-collections

我尝试将泛型collectionview像这样的tableview,但没有成功。如果可以的话,请给我一个建议。在此先感谢

func readLineScanner(r io.Reader, lineNum int) ([]byte, error) {
    sc := bufio.NewScanner(r)
    lastLine := 0
    for sc.Scan() {
        lastLine++
        if lastLine == lineNum {
            break
        }
    }
    return sc.Bytes(), sc.Err()
}

struct和struct的单元格     结构狗{        命名:字符串     }

class BaseTableVC<T: BaseCell<U>, U>: UITableViewController {

let cellId = "cellId"
var items = [U]()

override func viewDidLoad() {
    super.viewDidLoad()

    tableView.register(T.self, forCellReuseIdentifier: cellId)
}

override func tableView(_ tableView: UITableView,   numberOfRowsInSection section: Int) -> Int {
    return items.count
}

override func tableView(_ tableView: UITableView, cellForRowAt  indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) as! BaseCell<U>
    cell.item = self.items[indexPath.row]
    return cell
}
}

class BaseCell<U> : UITableViewCell {
var item: U!

}

在ViewController中,

class DogCell: BaseCell<Dog> {
override var item: Dog!{
    didSet{
        textLabel?.text = item.name

    }
}
}

1 个答案:

答案 0 :(得分:0)

我有同样的问题。问题是我覆盖了numberOfSections(in collectionView: UICollectionView) -> Int而不是覆盖collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int.,所以请确保覆盖正确的方法。