Пользовательское UITextField/UIButton Пользовательское UITextField/UIButton
-
05-07-2019 - |
Вопрос
То, что я пытаюсь сделать, это скопировать 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 для выбора имен получателей сообщений.
Как минимум, исходный код может дать вам несколько указаний о том, как добиться различных визуальных эффектов.