- Я относительно новичок в разработке для iOS -
В настоящее время я работаю над приложением для ресторана.
Функциональность приложения заключается в том, что сотрудники смогут выбирать, за каким столом сидят клиенты, прежде чем передать устройство им.
В настоящее время я пытаюсь сделать это, перечисляя каждую таблицу в виде кнопки, используя представление коллекции.
Таблицы разделены на две группы: внутри и снаружи.
Моя цель состоит в том, чтобы отделить внутренние таблицы и внешние таблицы с помощью элемента управления страницы.
Вот что у меня есть:
Страница 1: с 1 по 24 напоминает внутренние таблицы, а остальные напоминают внешние таблицы
Страница 2: Пусто
Класс 1: CollectionViewCell
class CollectionViewCell: UICollectionViewCell {
@IBOutlet weak var tableButton: UIButton!
}
Класс 2: TableNumSelection
class TableNumSelection: UIViewController, UIScrollViewDelegate, UICollectionViewDataSource, UICollectionViewDelegate {
@IBOutlet weak var pageControl: UIPageControl!
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var collectionView: UICollectionView!
@IBOutlet weak var typeLabel: UILabel!
let types = ["Inside", "Outside"]
let tables = [["#1", "#2", "#3", "#4", "#5", "#6", "#7", "#8", "#9", "#10", "#11", "#12", "#13", "#14", "#15", "#16", "#17", "#18", "#19", "#20", "#21", "#22", "#23", "#24"], ["#501", "#502", "#503", "#504", "#505", "#506", "#507", "#508", "#509", "#510", "#511", "#512", "#513", "#514", "#515", "#516", "#517", "#518", "#519", "#520", "#521", "#522", "#523", "#524", "#525", "#526", "#527", "#528", "#529", "#530", "#531"]]
var frame = CGRect(x:0,y:0,width:0,height:0)
override func viewDidLoad() {
super.viewDidLoad()
pageControl.numberOfPages = 2
for i in 0..<tables.count {
frame.origin.x = scrollView.frame.size.width * CGFloat(i)
frame.size = scrollView.frame.size
typeLabel.text = types[i]
let numberOfItems = collectionView(collectionView, numberOfItemsInSection: i)
print(numberOfItems)
}
scrollView.contentSize = CGSize(width: (scrollView.frame.size.width * CGFloat(tables.count)), height: scrollView.frame.size.height)
scrollView.delegate = self
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width
pageControl.currentPage = Int(pageNumber)
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 2
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if section == 0 {
return tables[0].count
}
else {
return tables[1].count
}
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! CollectionViewCell
print(indexPath)
let section = indexPath.section
if section == 0 {
cell.tableButton.setTitle(tables[0][indexPath.item], for: UIControl.State.normal)
cell.tableButton.setTitleColor(UIColor.white, for: UIControl.State.normal)
return cell
} else {
cell.tableButton.setTitle(tables[1][indexPath.item], for: UIControl.State.normal)
cell.tableButton.setTitleColor(UIColor.white, for: UIControl.State.normal)
return cell
}
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print(indexPath.item)
}
У меня нет проблем с функциональностью прокрутки и смены страницы, поскольку все работает нормально:
Я пытался разбить таблицы на два раздела, хотя понятия не имею, как отобразить каждый раздел на отдельной странице (т. Е. Раздел 0 на странице 1 и раздел 1 на странице 2).
Нужно ли создавать два представления коллекции? Или я могу просто разделить по разделам, поскольку довольно неудачно попытался?
Иерархия сцен
Любое руководство будет высоко ценится.