Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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
Всем доброго времени суток! Подскажите ,пожалуйста, как организовать добавление новых элементов в уже существующую коллекцию путем ввода...

Двунаправленный список (добавление/удаление элементов в голову, просмотр списка, реализовать дублирование элементов с заданным значением) - C++
Здравствуйте! Помогите написать программу, обеспечивающую работу с двунаправленным нециклическим списком: добавление/удаление элементов в...

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

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

11
Megabar
22 / 22 / 3
Регистрация: 01.12.2013
Сообщений: 93
04.03.2014, 19:34 #2
suvorov, создайте вручную объекты классов UIButton, UILabel и UITextField внутри метода viewDidLoad. Все элементы добавьте к корневому view.
1
suvorov
5 / 5 / 0
Регистрация: 14.11.2012
Сообщений: 110
04.03.2014, 19:48  [ТС] #3
Megabar
Спасибо что ответили! Содания классов вручную, это понятно. Но как сделать, что бы эти элементы распологались друг за другом? Все координаы вручную писать? Но при таком подходе, я не знаю конечкую высоту элемента, из-за разного объема текста. Как быть?
0
zulkis
684 / 611 / 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
и подобные.

Читайте.
1
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
05.03.2014, 00:43 #5
Цитата Сообщение от suvorov Посмотреть сообщение
Нужно что бы в цикле for друг за другом горизонтально создавались элементы(lable, textView или button. Пока не знаю что подойдет.
Цитата Сообщение от suvorov Посмотреть сообщение
я не знаю конечкую высоту элемента, из-за разного объема текста
А точно горизонтально? Может, друг под другом вертикально? Тогда UITableView хорошо подойдет.
1
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];
    }
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
05.03.2014, 01:09 #7
Так вот же в соседней теме

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

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

p.s. и параллели лучше проводить с ListView, а не AdapterView
0
06.03.2014, 00:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2014, 00:02
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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