2010-02-08 2 views
0

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

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

Gauge http://i49.tinypic.com/301g2u8.jpg

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

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

ответ

1

Посмотрите на класс UIScrollView.

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

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

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

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

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

+0

Является ли содержимое UIScrollView каким-либо добавлением в качестве подвид? – VoidPointer

+1

Да, установите представление подпрограммы для просмотра прокрутки, а затем настройте содержимое содержимого прокрутки, contentInsets и т. Д. – Jasarien

+1

Для этого вам не нужно использовать прокрутку. Любое представление будет работать. Просто установите маску равной true и установите кадр детского вида на отрицательную координату x. – schwa

Смежные вопросы