Теперь я хочу показать таблицу с N строк и N столбцов с направленной прокруткой.
Ограничения
С помощью композиционной прокрутки макет, нам нужно создать табличную структуру CollectionView. Ниже приведены свойства.
считайте, что максимальная ширина ячейки равна 130, а высота может увеличиваться в зависимости от содержимого.
высота ячейки должна быть одинаковой во всех строках, а ширина ячейки должна быть одинаковой во всех столбцах.
ячейка может состоять только из меток, и нет никаких ограничений на отображение количество строк. Таким образом, оно может расширяться в зависимости от содержимого.
в представлении может быть n таблиц.
Это фактические ограничения. Но я попробовал примеры ограничений с точным макетом.
В моем коде применяется вывод, имеющий одинаковую высоту для всей группы (строки). **Но мне также нужна одинаковая ширина для всего столбца в разделе для всех столбцов. Это не применяется
**
Мой код представления контроллера:
Теперь я хочу показать таблицу с N строк и N столбцов с направленной прокруткой. Ограничения С помощью композиционной прокрутки макет, нам нужно создать табличную структуру CollectionView. Ниже приведены свойства. [list] [*]считайте, что максимальная ширина ячейки равна 130, а высота может увеличиваться в зависимости от содержимого. [*]высота ячейки должна быть одинаковой во всех строках, а ширина ячейки должна быть одинаковой во всех столбцах. [*]ячейка может состоять только из меток, и нет никаких ограничений на отображение количество строк. Таким образом, оно может расширяться в зависимости от содержимого. [*]в представлении может быть n таблиц. [/list] Это фактические ограничения. Но я попробовал примеры ограничений с точным макетом. В моем коде применяется вывод, имеющий одинаковую высоту для всей группы (строки). **Но мне также нужна одинаковая ширина для всего столбца в разделе для всех столбцов. Это не применяется ** Мой код представления контроллера: [code] class ViewController: UIViewController, UICollectionViewDataSource {
var modelTableData: ModelTabledata! = nil var modelData : [TableData]! = nil var flattenedData : [FlattenData]! = nil
private var collectionView : UICollectionView! = nil
private func createLayout() -> UICollectionView { let layout = UICollectionViewCompositionalLayout { (sectionIndex, _) -> NSCollectionLayoutSection in let item = NSCollectionLayoutItem(layoutSize: .init(widthDimension: .estimated(100), heightDimension: .uniformAcrossSiblings(estimate: 100)))
let group = NSCollectionLayoutGroup.horizontal(layoutSize: .init(widthDimension: .estimated(100), heightDimension: .estimated(100)), subitems: Array(repeating: item, count: (self.modelData[sectionIndex].data.headers.count)))
// Define the container group where groups will be laid out vertically let containerGroup = NSCollectionLayoutGroup.vertical(layoutSize: .init(widthDimension: .estimated(100), heightDimension: .estimated(100)), subitems: Array(repeating: group, count: (self.modelData[sectionIndex].data.rows.count + 1)))
// Create a section with the container group let section = NSCollectionLayoutSection(group: containerGroup)
// Define the size of the section header let headerSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .estimated(44)) let sectionHeader = NSCollectionLayoutBoundarySupplementaryItem(layoutSize: headerSize, elementKind: UICollectionView.elementKindSectionHeader, alignment: .top) section.boundarySupplementaryItems = [sectionHeader]
// Set orthogonal scrolling behavior for the section section.orthogonalScrollingBehavior = .continuous
} [/code] Формат TableData [code] struct TableData: Hashable, Codable { var type: String var data: Table var title: String }
struct Table: Codable, Hashable { var rows: [[String]] var headers: [String] } [/code] Загрузка данных Json [code] struct FlattenData { var type: String var data: [String] var title: String }
@Observable class ModelTabledata { var jsonContents: [TableData] = load("data.json")
Мне нужна сетка для отображения изображения профиля, имени, двоеточия и сообщения. Если имя слишком длинное, столбцы имени и сообщения должны иметь одинаковую ширину. В противном случае столбец имени должен быть выровнен по левому краю, не создавая...
Мне нужна сетка для отображения изображения профиля, имени, двоеточия и сообщения. Если имя слишком длинное, столбцы имени и сообщения должны иметь одинаковую ширину. В противном случае столбец имени должен быть выровнен по левому краю, не создавая...
Мне нужна сетка для отображения изображения профиля, имени, двоеточия и сообщения. Если имя слишком длинное, столбцы имени и сообщения должны иметь одинаковую ширину. В противном случае столбец имени должен быть выровнен по левому краю, не создавая...
Мне нужна сетка для отображения изображения профиля, имени, двоеточия и сообщения. Если имя слишком длинное, столбцы имени и сообщения должны иметь одинаковую ширину. В противном случае столбец имени должен быть выровнен по левому краю, не создавая...
У меня есть горизонтальный RecyclerView, отображающий 5 элементов, каждый из которых представляет собой LinearLayout, содержащий TextView для значения и метки. Несмотря на настройку Layout_width= 0dp и Layout_weight= 1 для каждого элемента, они не...