Я программно создал TableView, используя разделы в swift. Количество разделов и строк всегда будет одинаковым, так как они просто отображают информацию, которую я вытаскиваю из Firebase.Выровнять текст ячейкиLabel влево влево программно в swift
Я хотел бы изменить textLabel одной из ячеек, чтобы выровнять ее сверху, а не середину ячейки. Все остальные textLabels я бы хотел сосредоточиться. Клетка в вопросе раздел 1, строка 1.
В настоящее время выглядит следующим образом:
Я искал, как сделать это на некоторое время, и многие люди говорят do:
cell.textLabel?.numberOfLines = 0
cell.textLabel?.sizeToFit()
Но это не работает. Я помещаю этот код в свой метод cellForRowAtIndexPath
.
if indexPath.section == 0 {
if indexPath.row == 0 {
cell.textLabel!.text = "Our review"
} else {
cell.textLabel!.text = film?.Main_Review
cell.textLabel?.numberOfLines = 0 // HERE
cell.textLabel?.sizeToFit() // HERE
}
}
Ничего не происходит, текст по-прежнему совпадает с центром ячейки.
Кто-нибудь знает простой способ сделать это? Предпочтительно без необходимости создавать пользовательскую ячейку (так как это нужно только для 1 строки)? Благодаря
UPDATE - Весь код для cellForRowAtIndexPath
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell = UITableViewCell(style: .Value1, reuseIdentifier: cellId)
cell.selectionStyle = .None
cell.textLabel?.font = UIFont(name: "Verdana", size: 14)
cell.textLabel?.textColor = UIColor.darkGrayColor()
cell.detailTextLabel?.font = UIFont(name: "Verdana", size: 14)
if indexPath.section == 0 {
if indexPath.row == 0 {
cell.textLabel!.text = "Share"
}
} else if indexPath.section == 1 {
if indexPath.row == 0 {
cell.textLabel!.text = "Our review"
} else {
cell.textLabel!.text = film?.Main_Review
cell.textLabel?.numberOfLines = 0
cell.textLabel?.sizeToFit()
}
} else if indexPath.section == 2 {
if indexPath.row == 0 {
cell.textLabel!.text = "UK release date"
cell.detailTextLabel!.text = film?.Date_Released?.capitalizedString
} else if indexPath.row == 1 {
cell.textLabel!.text = "Directed by"
cell.detailTextLabel!.text = film?.Directed_By?.capitalizedString
} else if indexPath.row == 2 {
cell.textLabel!.text = "Running time"
cell.detailTextLabel!.text = film?.Running_Time
} else {
cell.textLabel!.text = "Certificate rating"
cell.detailTextLabel!.text = film?.Certificate_Rating
}
}
return cell
}
Можете ли вы сказать как это условие когда-либо будет успешным ", если indexPath.section == 0 {if i ndexPath.section == 1 {', как это возможно –
@NDoc Спасибо! Это была моя ошибка - обновлена. – Nick89
написать все 'cellForRowAtIndexPath' – Vyacheslav