我正在学习cappuccino目标j,有一点困难了解cpview,calayer,cpimageview之间的差异。
我对JavaScript有很好的了解,但是没有目标C&可可。
我正在为我的UNI项目构建一个小应用程序,这将需要拖动&图像,绘图线和其他形状的滴落以链接它们。这样做类似的应用程序是Gomockingbird。
我的问题是我应该删除哪个提及。我已经在cappucino.org网站上查看平面图示例,它使用cpimageview对象拖放项目。由于我从一个教程中读到Calayer为这种类型的操作进行了优化,因此我很难知道要使用哪一个。
欢迎任何指向示例或教程的链接。
谢谢。
一般而言,卡莱斯(Calayers)是旧的,不应使用。
cpviews是屏幕上最基本的UI元素。几乎所有内容都由视图(窗口,图像视图,按钮等)支持。视图可以具有多数子视图和一个Supperiew。
如果您希望在视图中(即coregraphics或API)中的自定义绘图,则需要子类Uiview或Uiview的死者。然后,您将覆盖
- (void)drawRect:(CGRect)aRect;
uiimageView是Uiview的子类。唯一的目的是在屏幕上显示图像。
对于您的项目,我想我会做以下操作:创建一个"帆布视图",这是用户将与之交互的"画布视图"。根据需要将UIImageViews拖放到画布上。然后,对于线图,使画布视图本身从每个图像中绘制线。
重要的是要记住,自定义图纸的大景色往往会变得慢。如果您在用户绘制时注意到一些缓慢的速度,则在所有图像下插入临时绘图视图可能是有意义的。然后,当用户删除绘图线时,"画布视图"会自身更新,并且从视图层次结构中删除了临时绘图视图。
希望有所帮助!