Форум программистов, компьютерный форум CyberForum.ru

Програмное добавление элементов - Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
suvorov
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 110
04.03.2014, 17:33     Програмное добавление элементов #1
Добрый день!
Подскажите, как в IOS програмно добавить элементы. Моя задча: есть массив string. Нужно что бы в цикле for друг за другом горизонтально создавались элементы(lable, textView или button. Пока не знаю что подойдет. В андроид использовал простой lable) в View. Текст в элементе может быть разный, и короткий и длинный. Вообщем должен получиться список, где для каждого элемента будет свое событие.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2014, 17:33     Програмное добавление элементов
Посмотрите здесь:

Objective-C Добавление элемента в массив
Objective-C Добавление информации в .plist
Добавление нескольких уровней сложности в игре
Objective-C Добавление кода отправки GET запроса в AppDelegate.m
AVAudioPlayerNode добавление эффектов из файла Objective-C
Objective-C Добавление строк в UITextView

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Megabar
22 / 22 / 3
Регистрация: 01.12.2013
Сообщений: 93
04.03.2014, 19:34     Програмное добавление элементов #2
suvorov, создайте вручную объекты классов UIButton, UILabel и UITextField внутри метода viewDidLoad. Все элементы добавьте к корневому view.
suvorov
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 110
04.03.2014, 19:48  [ТС]     Програмное добавление элементов #3
Megabar
Спасибо что ответили! Содания классов вручную, это понятно. Но как сделать, что бы эти элементы распологались друг за другом? Все координаы вручную писать? Но при таком подходе, я не знаю конечкую высоту элемента, из-за разного объема текста. Как быть?
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
04.03.2014, 21:17     Програмное добавление элементов #4
suvorov, используйте
Objective-C
1
NSString – sizeWithFont:
и подобные.
Но они с iOS7 deprecated, и к тому же Apple пишет для некоторых методов:
Deprecated in iOS 7.0. There is no exact alternative for this method. Human interface guidelines discourage changing the font size this way because it leads to an inconsistent user experience. See UILabel as a possible alternative for some use cases.
Остальные нужно заменять на:
Objective-C
1
- sizeWithAttributes:(NSDictionary *)dict
и подобные.

Читайте.
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
05.03.2014, 00:43     Програмное добавление элементов #5
Цитата Сообщение от suvorov Посмотреть сообщение
Нужно что бы в цикле for друг за другом горизонтально создавались элементы(lable, textView или button. Пока не знаю что подойдет.
Цитата Сообщение от suvorov Посмотреть сообщение
я не знаю конечкую высоту элемента, из-за разного объема текста
А точно горизонтально? Может, друг под другом вертикально? Тогда UITableView хорошо подойдет.
suvorov
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 110
05.03.2014, 01:04  [ТС]     Програмное добавление элементов #6
Цитата Сообщение от mobidevelop Посмотреть сообщение
друг под другом вертикально
Да именно так! Не могли бы дать ссылку на что нибудь подобное? Нужно динамически создать label'ы, при этом они должно иметь много строк, а не в одну.
Пока пришел в такому коду, но он пока работает в одну строчку.
C
1
2
3
4
5
6
7
8
9
10
int count=20;
for(int i = 0; i < 5; i++){
        UILabel *label =  [[UILabel alloc] initWithFrame: CGRectMake(0,count,0,0)];
        label.text = @"Deprecated in iOS 7.0. There is no exact alternative for this method. Human interface guidelines discourage changing the font size this way because it leads to an inconsistent user experience.";
        label.numberOfLines = 0;
        [label sizeToFit];
        count+=20;
        
        [self.view addSubview:label];
    }
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
05.03.2014, 01:09     Програмное добавление элементов #7
Так вот же в соседней теме

ЗЫ. Я знал, что в действительности все не так, как на самом деле
suvorov
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 110
05.03.2014, 01:34  [ТС]     Програмное добавление элементов #8
Вообщем у меня следующая ситуация. Структура данных: слово - категоря - перевод. Делаю клиент для сайта словаря. Вот скриншот с моего приложения под андроид. На скриншоте четко видна эта структура. В андроиде реализовал очень просто. Просто было 3 цикла, которые создавали динамически лейблы с заданными параметрами. Подскажите, как будет лучше это сделать в IOS.
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
05.03.2014, 01:43     Програмное добавление элементов #9
Ну, классическая группированная таблица.
Ладно. Если официальная документация пугает, то вот. Рекомендую цикл "Все о UITableView". Но предупреждаю: он малость устарел. В наше время все чуть проще делается.
suvorov
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 110
05.03.2014, 18:30  [ТС]     Програмное добавление элементов #10
Спасибо! Вообще не пугает, но сам objective c совсем новый для меня язык, все по другому. Андроид был проще

Добавлено через 16 часов 43 минуты
UITableView, он просто группирует данные. По сути тот же адаптер в андроид. Но моя задача разместить в view n-ое количесво label, которые будут стоиться друг под другом. При этом колличесов строк в label может варьироваться. Может я чего то не понимаю, но при добавлении элемента нужно сразу указать его размер и позицию на view. Но эти размеры будут всегда разные.
Надеюсь на вашу помощь!
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
05.03.2014, 21:34     Програмное добавление элементов #11
От же ж сколько капризов )))
Ладно. Не хочется через table view, не надо. Тогда рассчитывайте координаты руками или курите autolayout.
Vorona
Peace 2 all shining faces
 Аватар для Vorona
661 / 523 / 44
Регистрация: 05.03.2010
Сообщений: 1,270
06.03.2014, 00:02     Програмное добавление элементов #12
Цитата Сообщение от suvorov Посмотреть сообщение
objective c совсем новый для меня язык, все по другому. Андроид был проще
objective-c это язык, а Android это система на Linux, для которой можно писать приложения восновном на Java, сравниваете коня с помидором
после программирования на Android смело заявляю что iOS куда приятней и проще, но не в этом дело
Цитата Сообщение от mobidevelop Посмотреть сообщение
Ладно. Не хочется через table view, не надо.
что-то тоже не пойму, зачем с табличкой так
пишу потому что ужасно смешно, как этот велосипед будет изобретаться из-за лени разобраться с UITableView
и хочу вас отговорить от этого

p.s. и параллели лучше проводить с ListView, а не AdapterView
Yandex
Объявления
06.03.2014, 00:02     Програмное добавление элементов
Ответ Создать тему
Опции темы

Текущее время: 02:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru