【发布时间】:2010-02-08 09:49:58
【问题描述】:
对于我正在开发的应用程序,我想实现一种类似仪表的控件。仪表应该是垂直方向的,我想获得一个刻度盘的效果,上面印有数值以垂直移动,以便当前值出现在仪表的中心。而当前不可见的表盘部分会被剪掉。
我认为一个好的方法是让一个 UIView 充当顶部可见部分(如果你愿意的话,仪表的窗口)和一个仅使用值和标记绘制刻度盘的子视图。顶视图将收到一条消息,指示要显示的值并移动子视图,以便当前值居中,而当前不可见的表盘部分被剪裁。我试着做一个小例子(表盘上变灰的部分应该被剪掉):
我不确定如何设置视图,以便我可以真正让它工作。我尝试了两个 UIView 子类,但渲染表盘的视图只会在屏幕上的某个意外位置绘制,并且不会被父视图剪切。
我真的只是在寻找有关实现此类控件所需部件的一般建议。正如我试图描述的那样,使用两个视图是否有意义,或者我应该将其实现为一个 UIView 子类,它只是确定每当值更改时要绘制表盘的哪一部分?或者可能是完全不同的东西?
【问题讨论】:
标签: iphone objective-c uikit custom-controls