Форум программистов, компьютерный форум, киберфорум
Наши страницы
Swift
Войти
Регистрация
Восстановить пароль
 
newlinerus
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 11
1

Меню сеткой

30.08.2017, 22:39. Просмотров 341. Ответов 3
Метки нет (Все метки)

доброго времени суток! Есть меню DataTable которое тянет картинка по API в Cell
Каким образом можно сделать подобное меню сеткой в 2-3 ряда? Код VC:

Код на SWIFT 3

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import UIKit
 
class MenuViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{
 
    @IBAction func SegmentedMenuControl(_ sender: UISegmentedControl) {
        switch segmentedControl.selectedSegmentIndex
        {
        case 0:
            MenuTableView.isHidden = true
        case 1:
            MenuTableView.isHidden = false
        default:
            break; 
        }
    }
    @IBOutlet weak var segmentedControl: UISegmentedControl!
    @IBOutlet weak var MenuTableView: UITableView!
    
 
    
    override func viewDidLoad() {
        super.viewDidLoad()
        fetchSources()
    }
    var sources: [ArticleSources]? = []
    
    func fetchSources(){
        let urlRequest = URLRequest(url: URL(string: "https://newsapi.org/v1/sources?language=en")!)
        
        let task = URLSession.shared.dataTask(with: urlRequest){(data,response,error) in
            
            if error != nil{
                print(error)
                return
            }
            
            self.sources = [ArticleSources]()
            do{
                let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : AnyObject]
                
                if let SourcesFromJson = json["sources"] as? [[String : AnyObject]]{
                    for SourceFromJson in SourcesFromJson{
                        let source = ArticleSources()
                        if let name = SourceFromJson["name"] as? String, let id = SourceFromJson["id"] as? String, let  url = SourceFromJson["url"] as? String{
                            
                            source.SourceName = name
                            source.SourceId = id
                            source.SourceUrl = url
                        }
                        self.sources?.append(source)
                    }
                }
                DispatchQueue.main.async {
                    self.MenuTableView.reloadData()
                }
                
            } catch let error{
                print(error)
            }
        }
        
        task.resume()
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
        
        if let SourceCell = tableView.dequeueReusableCell(withIdentifier: "SourceCell", for: indexPath) as? MenuCell {
            /*
            cell.name.text = self.sources?[indexPath.item].headline
            cell.desc.text = self.sources?[indexPath.item].desc
             */
            SourceCell.SourceLbl.text = self.sources?[indexPath.item].SourceName
            print(self.sources?[indexPath.item].SourceName)
            
            return SourceCell
            
        }else {
            return UITableViewCell()
        }
        
    }
    func numberOfSections(in tableView: UITableView) -> Int {
        
        return 1
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        return self.sources?.count ?? 0
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        
        let partyRock = sources?[indexPath.row]
        performSegue(withIdentifier: "NewsViewController", sender: partyRock)
    }
    
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        
        if let destination = segue.destination as? ViewController {
            
            if let partySource = sender as? ArticleSources {
                //destination.article = party
                destination.source = partySource
            
            }
            
        }
    }
 
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2017, 22:39
Ответы с готовыми решениями:

Проблема с сеткой
Всем привет.у меня роутер.от него кабель на пк.сын что то с настройками...

Товары сеткой, в строчку
можно ли? все товары идут один за другим - построчно. надо 3 товара в...

Вывод контента плитками\сеткой
Нужен вывод сеткой, можно произвольного хтмл, при нажатии на плитку, всплывает...

Windows 7 проблема с корпоративной сеткой
Добрый день! Имеется машина в корпоративной сети под управлением Windows 7...

Display grid - вывод сеткой
РЕбят, помогите пожалуйста. Вот есть код: <div class="display"><b><?php echo...

3
ExFau$t
638 / 538 / 122
Регистрация: 08.05.2012
Сообщений: 2,697
31.08.2017, 00:39 2
Не понял вопрос, на вскидку вместо tableView - collectionView.
0
newlinerus
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 11
31.08.2017, 10:00  [ТС] 3
Попробую объяснить по другому... Есть новостная лента (новостные ресурсы), просят сделать 2 отображения данной страницы с возможностью переключения вида с Grid на List и обратно
0
ExFau$t
638 / 538 / 122
Регистрация: 08.05.2012
Сообщений: 2,697
31.08.2017, 10:28 4
Создаёшь tab bar Controller. Делаешь два контроллера с grid и с list, как ты выразился, и помещаешь их в tab bar. Снизу будет будет этот бар с двумя иконками, по ним будешь переключаться.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2017, 10:28

Задача Бюффона с квадратной сеткой
Подскажите, пожалуйста, что будет с результирующей вероятностью в задаче...

Построить график с координатной сеткой
Построить график с координатной сеткой. Функция f(x)=(-1/x*x)-((cos(1/x))/x*x);

Управление сеткой при выводе графиков
Известно что сетка при построении плоских графиков включается-выкл командой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru