9 декабря 2019 г. 0:56

235

Пишем первое IOS приложение.Отображение списка с помощью TableView

Я новичок в IOS разработке и никогда не создавал мобильные приложения

Поэтому я решил создать простое мобильное приложение , которое позволит с помощью REST API получать данные сервера и отображать их в мобильном приложении.

Итак приступим

Открываем XCode и создаем новый Single App

Вначале мы не будем получать данные с сервера , а просто локально создадим тестовый набор названий статей в массиве postsTitles.


import UIKit

class ViewController: UIViewController {
    
    var postsTitles = ["First title", "Second title","Another title"]

    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


}

Добавляем компонент интерфейса UITableView. Это одноколочная таблица , которая служит для отображения(и не только) списка данных. Все строки UITableView являются экземплярами своего класса UITableViewCell


После того как мы добавили TableView , то нам для ViewController нужно реализовать два протокола

UITableViewDataSource - этот протокол служит для задания порядка и количества секций и строк, возможностей их редактирования

UITableViewDelegate - этот протокол служит для настройки внешнего вида, функций выделения, перетаскивания и прочего.

Чтобы наш ViewContoller соответсвовал протоколу UITableViewDataSource мы должны реализовать два метода:

1. numberOfRowsInSection

2. cellForRowAt


import UIKit

class ViewController: UIViewController {
    
    var postsTitles = ["First title", "Second title","Another title"]

    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


}

extension ViewController: UITableViewDelegate, UITableViewDataSource {
    
    // Реализация  numberOfRowsInSection
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return postsTitles.count
    }
    
    // Реализация cellForRowAt
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = postsTableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        cell.textLabel?.text = postsTitles[indexPath.row]
        
        return cell
    }
    
    
}

Список вывели

TableView show data

Теперь реализуем , чтобы при клике на ячейку с заголовком отображался новый View c подробной информацией. Там и будет содержимое статьи

Итак , мы реализовали вывод заголовков всех статей и при клике вывод полной информации

Заключение

Во второй части статьи мы подготовим

comments powered by Disqus