Реализация управления датчиком с помощью UIKit на iPhone - PullRequest
0 голосов
/ 08 февраля 2010

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

Я подумал, что хорошим подходом было бы иметь один UIView, который действует как верхнюю видимую часть (окно датчика, если хотите) и подпредставление, которое просто рисует циферблат со значениями и маркерами. Вид сверху получит сообщение с указанием значения для отображения и перемещения подпредставления так, чтобы текущее значение было отцентрировано, а часть циферблата, которая в данный момент не видна, обрезается. Я попытался сделать небольшую иллюстрацию этого (часть серого циферблата должна быть обрезана):

Gauge

Я не уверен, как настроить представления так, чтобы я мог заставить это работать. Я пробовал использовать два подкласса UIView, но представление, отображающее циферблат, просто рисовало бы в каком-то неожиданном месте на экране и не было бы обрезано родительским представлением.

Я просто ищу общие рекомендации по деталям, необходимым для реализации подобного элемента управления. Имеет ли смысл использовать два представления, как я пытался описать, или я должен реализовать это как один подкласс UIView, который просто определяет, какую часть циферблата рисовать при изменении значения? Или, может быть, что-то совершенно другое?

1 Ответ

1 голос
/ 08 февраля 2010

Загляните в класс UIScrollView.

Из того, что я прочитал в вашем вопросе, это должно дать вам то, что вам нужно.

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

Таким образом, у вас может быть представление контента, то есть, для аргументов, 50x320, и представление прокрутки будет только 50 x 50. Область представления контента будет обрезана до размера 50x50, и вы сможете для перемещения просмотра содержимого с помощью прокрутки пальцем, как и для других встроенных элементов управления iPhone.

Многие, если не все, приложения iPhone каким-то образом используют вид прокрутки. UITableView s являются подклассами представлений прокрутки, как и UITextView s.

У Apple есть хороший пример приложения, в котором показано, как использовать представление с прокруткой, так что проверьте это тоже.

...