2016-11-15 5 views
0

Я не могу представить, как иметь табличное представление, содержащее объект, тело и изображение, чтобы, если нет изображения, связанного с объектом и телом. см Изображения auto lay with table prototypeБыстрое изображение в виде таблицы и метка

Я хотел бы тему и тело вместе, когда изображение в базе данных, а затем, если есть изображение, то тело сюжетного изображения

ответ

1

штырьковые этикетки в верхние и нижнюю части клетки , Когда у вас нет изображения, вы устанавливаете imageView.isHidden = true. Вы также возвращаете правильную высоту ячейки за вычетом imageView.frame.size.height в UITableViewDelegate.tableview (_: heightForRowAt :).

Если вам не нравится подход, просто создайте два разных стола TableCell и отметьте один с изображением, если у вас есть изображение, и изображение без изображения, когда у вас нет изображения.

0

Вы можете сделать это в своих методах dataSource для tableview. Нечто подобное должно работать:

//Model: 
var model = [Stuff] 


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

    let cell = tableView.dequeueReusableCell(withIdentifier: "myprototype", for: indexPath) 

    cell.subjectLabel.text = model[indexPath.row].subject 
    cell.bodyLabel.text = model[indexPath.row].body 
    //assuming the image is an optional 
    if let image = model[indexPath.row].image { 
     cell.imageView.image = image 
    } 
    return cell 
} 

Вы, возможно, придется установить ограничения autolayout для ImageView иметь низкое сопротивление на сжатие.

Вы также можете захотеть сделать клетки размер за счет реализации следующих в методах UITableViewDelegate:

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 

override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 
Смежные вопросы