Пользовательское UITextField/UIButton Пользовательское UITextField/UIButton

StackOverflow https://stackoverflow.com/questions/1609070

Вопрос

То, что я пытаюсь сделать, это скопировать NSTokenField, подобный UITextField, который можно увидеть в приложении Mail и приложении Messages (введите контакт, и он выдаст предложения).

У меня автозаполнение работает отлично, когда вы вводите UITextField, появляется UITableView, показывающий любые совпадения, которые он может найти в массиве, когда вы нажимаете на одно, оно добавляет его в UITextField.Пока я действительно доволен этим.

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

Мой первый вопрос заключается в том, как я могу добавить этот теневой вид в UITableView?Похоже, он опустился за UITextField.

Во-вторых, я знаю, что мне придется создать подкласс UITextField, чтобы он выглядел так, как мне бы хотелось, но я понятия не имею, с чего начать.Было бы здорово дать несколько советов или образец!

Наконец, я думаю, мне нужно создать пользовательский UIButton с пробелом для текста и синим градиентом, а затем добавить его в UITextField.Та же проблема, что и с UITextField, не совсем уверен, как создать подкласс UIButton (какие методы ему нужно использовать для рисования и прочее) или как добавить его в UITextField таким образом, чтобы при нажатии кнопки backspace в UITextField кнопка выделялась, а затем удалялась, если снова нажать кнопку backspace (именно так работает NSTokenField).

Я включил изображение просто для того, чтобы вы могли видеть, о чем я говорю:http://www.thermoglobalnuclearwar.com/stuff/mail.jpg

Я взглянул на проект Джо Хьюитта Three20, но не смог в нем разобраться.Я хотел бы начать очень просто и понять все, что происходит, вместо того, чтобы просто перетаскивать его код в мой и не иметь ни малейшего представления о том, что происходит!

Любая помощь очень ценится!

Спасибо, Том.

Это было полезно?

Решение 2

Хорошо, у меня есть тень, работающая под UITextField, и я добавил к ней метку "Кому:".Это выглядит великолепно!

Итак, последнее, что нужно сделать, - это синий элемент управления, подобный NSToken.Я начал думать, что проще всего просто создать подкласс UIView и нарисовать синий градиент и метку внутри него.Что подводит меня к еще нескольким вопросам:

Я нашел это: http://github.com/leonho/iphone-libs/tree/master который рисует красивый округлый вид, и я адаптировал его, чтобы добавить к нему текст, а не число, чего я не знаю, как сделать, так это нарисовать градиент вместо сплошного цветного блока.

После этого остается только добавить закругленные виды в UITextField, переместить курсор и решить, как удалить виды, когда курсор дойдет до них, но я займусь этим, когда мне нужно.

Другие советы

Рассматривали ли вы возможность использования Библиотека Three20?Он содержит элемент управления, который, я думаю, делает то, что вы хотите (TTPickerTextView).

Как указано в описании веб-сайта

TTPickerTextField ттпикертекстовое поле является UITextField с опережением типа.По мере ввода он выполняет поиск в источнике данных и добавляет пузырьки в текстовый поток, когда вы выбираете опцию ввода с опережением.Я использую это в TTMessageController для выбора имен получателей сообщений.

Как минимум, исходный код может дать вам несколько указаний о том, как добиться различных визуальных эффектов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top