Добавление UITextView
сложно, потому что это подкласс UIScrollView
, как и UITableView
, и добавление представления прокрутки к другому представлению прокрутки не только трудно для распознавателей жестов, но и для автоматического размещения .
Что облегчит вашу жизнь, так это наличие всего лишь одного табличного представления в контроллере представлений с разными секциями, и у каждой секции есть свой тип ячейки.
Что мне нравится делать для этого, так это объявить enum
в моем контроллере вида:
class MyViewController: UIViewController {
private enum Section: Int, CaseIterable {
case foo
case bar
}
}
extension MyViewController: UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return Section.allCases.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
guard let section = Section(rawValue: section) else { preconditionFailure() }
switch section {
case .foo:
return 1
case .bar:
return 4
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let section = Section(rawValue: indexPath.section) else { preconditionFailure() }
let cell: UITableViewCell
switch section {
case .foo:
cell = ...
case .bar:
cell = ...
return cell
}
}
Для ячеек с длинным текстом вы можете просто использовать стиль ячейки default
(в вашем XIB / storyboard) и установите
cell.textLabel?.numberOfLines = 0
Табличное представление должно иметь возможность автоматически изменять размер, чтобы соответствовать всему тексту.
Единственная причина, по которой вам нужно использовать UITextView
в вашем сценарии, это если вы хотите, чтобы пользователь мог редактировать текст. В противном случае избавьте себя от большой боли и идите с UILabel
.
Можно использовать осмотреть модуль, как это:
import inspect
inspect.getfile(C.__class__)
попытка:
import sys, os
os.path.abspath(sys.modules[LocationArtifact.__module__].__file__)
Это - неправильный подход для Django и действительно принуждение вещей.
Типичный шаблон приложения Django: