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

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
suvorov
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 110
#1

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

04.03.2014, 17:33. Просмотров 644. Ответов 11
Метки нет (Все метки)

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

Winrar - програмное добавление файла - C++ WinAPI
ShellExecute(hWnd, L"Open", L"WinRar", L"WinRAR a C:\FILE.RAR *.", L"", SW_SHOW); При такой команде из VS2010 Winapi - не может в архив...

Програмное создание элементов и SQL - C# ASP.NET
Народ такая проблема, ни как не могу найти решение. Имеется строка в конце которой находиться кнопка "Добавить еще строчку". Необходимо...

Добавление новых элементов в уже существующую коллекцию, количество элементов организуется с клавиатуры - C# WPF
Всем доброго времени суток! Подскажите ,пожалуйста, как организовать добавление новых элементов в уже существующую коллекцию путем ввода...

Програмное создание объектов - Visual Basic .NET
1) Подскажите пожалуйста, как програмно создать объект? например при загрузке формы должна создаваться кнопка на форме. 2) и ещё...

Термодатчик+програмное релле - Микроконтроллеры
кто занимался, занимается и будет заниматься радиоэлектронникой и программированием микроконтроллеров, нужна помощь в создании самого...

Програмное создание странички? - PHP
Здравствуйте! Заранее прошу прощение, если что-то написал не так или ни туда. Я первый день на форуме... Веб-прграммированием не...

Програмное создание объектов - Lazarus
Неободимо написать код для создания и выведения на экран объекта класса TShape (или TImage). Написанный мною код: unit Unit1; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
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.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2014, 00:02     Програмное добавление элементов
Еще ссылки по теме:

Програмное заполнение грида - C#
Доброго времени суток. Подскажите пожалуйста как заполнить программно грид. Я на форму добавил грид и в конструкторе создал столбцы...

Програмное удаление файлов - C++ Builder
Подскажите пожалуйста как програмно удалить файлы определенного формата в определенной папке

Програмное отключение клавиатуры - C#
надо програмно выключить (а потом включить) клавиатуру, чтоб не было реакции двже на &amp; , как это сделать?

Програмное освобождение памяти - VBA
У меня на работе компы помощнее нормально работают с макросами (копировать/вставить, циклы и тд), а послабее- память 64 М начинают...

Програмное нажатие на кнопку мыши - Delphi
Здравствуйте, уважаемые программисты! Доброго вам времени суток! Как можно сделать, при нажатие левой кнопки мыши находил...


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

Или воспользуйтесь поиском по форуму:
Vorona
Peace 2 all shining faces
667 / 529 / 45
Регистрация: 05.03.2010
Сообщений: 1,273
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     Програмное добавление элементов
Ответ Создать тему
Опции темы

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