Пользовательский UITextField / UIButton - PullRequest
2 голосов
/ 22 октября 2009

Я пытаюсь скопировать NSTokenField, например UITextField, который отображается в приложении «Почта» и «Сообщения» (введите контакт, и у него появятся предложения).

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

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

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

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

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 26 октября 2009

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

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

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

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

1 голос
/ 23 октября 2009

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

Как говорится в описании веб-сайта

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

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

...