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