首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective-J CPView,CALayer,CPImageView绘图

Objective-J CPView,CALayer,CPImageView绘图
EN

Stack Overflow用户
提问于 2012-11-04 00:07:44
回答 1查看 347关注 0票数 1

我正在学习Cappuccino Objective J,当涉及到绘画时,我有一点难以理解CPView,CALayer,CPImageView之间的区别。

我有很好的JavaScript知识,但没有与目标C和可可的经验。

我正在为我的uni项目建立一个小应用程序,这将需要拖放图像,绘制线和其他形状来链接它们。这样做的应用程序是gomockingbird

我的问题是,我应该使用上面提到的哪一个来删除和绘制。我已经看过cappucino.org网站上的FloorPlan示例,它使用CPImageView对象来拖放项目。因为我在教程中读到CALayer针对这种类型的操作进行了优化,所以我很难知道该使用哪种类型的操作。

欢迎任何指向示例或教程的链接。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-11-04 00:45:23

一般来说,CALayers是旧的,不应该使用。

CPViews是屏幕上最基本的UI元素。几乎所有的东西都有一个视图支持(窗口、图像视图、按钮等)。视图可以有任意数量的子视图和单个superview。

如果你想在视图中自定义绘图(即CoreGraphics或canvas之类的API),你需要继承UIView或UIView的子类。然后,您将覆盖

代码语言:javascript
复制
- (void)drawRect:(CGRect)aRect;

UIImageView是UIView的一个子类。它的唯一目的是在屏幕上显示图像。

对于您的项目,我认为我将执行以下操作:创建一个用户将与之交互的“画布视图”。根据需要将UIImageViews拖放到画布上。然后,对于线条绘制,让画布视图本身从每个图像中绘制线条。

重要的是要记住,执行自定义绘图的大型视图往往会变得很慢。如果您注意到用户在绘图时速度较慢,那么在所有图像下插入一个临时绘图视图可能是有意义的。然后,当用户放下绘制线时,“画布视图”会自我更新,并从视图层次结构中删除临时绘图视图。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13210937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档