В методе tableView(tableView:, cellForRowAtIndexPath:) -> UITableViewCell
, как установить дополнительное изображение через ячейку?Как установить образ изображения UITableViewCell?
cell!.imageView?.image = someLoadedImage
в этом случае, если imageView: UIImageView?
свойство cell
является nil
, когда построен, то задание будет провалено, верно?
В соответствии с «Руководством по быстрому программированию», john.residence?.address = someAddress
: «В этом примере попытка установить свойство адреса john.residence не будет выполнена, так как john.residence в настоящее время равна нулю» (необязательная цепочечная цепочка).
class Residence {
...
var address: Address?
}
class Person {
var residence: Residence?
}
let john = Person()
let someAddress = Address()
john.residence?.address = someAddress // will fail
вот код:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier(simpleTableIdentifier)
as? UITableViewCell
if cell == nil {
cell = UITableViewCell(style: .Default, reuseIdentifier: simpleTableIdentifier)
}
let image = UIImage(named: "star")
let highlightedImage = UIImage(named: "star2")
cell!.imageView?.image = image // can compile and run
cell!.imageView?.highlightedImage = highlightedImage
cell?.textLabel!.text = dwarves[indexPath.row]
return cell!
}
В чем проблема? – Roger
проблема заключается в том, что если присваивается 'cell! .imageView? .image = image', это должно завершиться неудачей? но приложение может компилироваться и запускаться. Когда ячейка инициализируется, свойство imageView должно быть 'nil' правильным? – wxwcase
Это будет не ноль, как cell.textLabel не будет ник. Вы используете ячейки по умолчанию, снабженные табличным представлением. Если у вас есть пользовательская ячейка с представлением изображения в ней, она будет равна нулю, если вы не инициализируете ее. –