在 UIImage 类型的对象上找不到属性“中心”*

Posted

技术标签:

【中文标题】在 UIImage 类型的对象上找不到属性“中心”*【英文标题】:Property 'center' not found on object of type UIImage * 【发布时间】:2014-11-15 08:04:20 【问题描述】:

我在控制器上定义了一个名为 FirstView 的视图。我的 -(void)move 方法中有这个:

-(void)move

 head = CGPointMake(head.center.x + X, head.center.y + Y);

我已经在我的 .h 文件中将 X 和 Y 定义为整数,并将“head”定义为 UIImage。对于上面的代码行,我在 UIImage * 类型的对象上找不到错误“属性中心”。有什么方法可以将其更改或转换为 UIImageView 吗?我想要 UIImage 因为我在我定义的视图上做动画和绘制图像。 Quartzcore 只允许 UIImage 而不允许 UIImageView。那么,我在这里缺少什么?

【问题讨论】:

A UIImage 没有中心,因为它不是视图。 UIImageView 有一个中心。这是绘制 UIImage 对象的视图。 对,那我怎么改呢?就像我说的,我想使用 Quartzcore 在我的视图上绘制一些东西。我已经使用 UIImage 做到了。 如果你想用 Quartz (Core Graphics) 绘图,你需要使用 CGImageRef,创建和上下文,移动,...并使用 C 函数:CGContextDrawImage (CGContextRef c, CGRect rect, CGImageRef image) 哦。我画了这样的东西:CGPoint imgPt = CGPointMake(-1, 0); [图像绘制点:imgPt];我描述的错误与 drawAtPoint 和 drawRect UIImage 不是UIView 的子集,因此它没有这样的属性。您不能只是将其“重新转换”为 UIImageView,您必须实例化一个 UIImageView 对象属性。 【参考方案1】:

找不到是因为它不存在!!中心、边界和框架仅用于视图。您想要的任何动画都可以使用 UIImageView 来完成,因此无论您在上面尝试做什么都不是正确的方法。所以,我建议阅读https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/AnimatingViews/AnimatingViews.html

【讨论】:

我实际上创建了一个 Obj-C 类,它是 UIView 的子类,因此它具有允许我们绘制动画的 drawRect 方法。我是否必须将子类更改为 UIViewController 或类似的东西,然后将图像类型更改为 UIImage View?【参考方案2】:

UIImage 没有中心属性,因为它不是视图。使用UIImageView 并访问它的image 属性来设置它的图像。

【讨论】:

【参考方案3】:

UIImageView 派生自 UIView,因此它具有 center 属性,而 UIImage 引用图像内容,因此它没有 center 属性。代替 UIImage 将 UIImageView 对象放在那里。

【讨论】:

哦。我画了这样的东西:CGPoint imgPt = CGPointMake(-1, 0); [图像绘制点:imgPt];当我放置一个 UIImage 视图对象时。我得到“UIImageView 没有可见的@interface 声明选择器 drawAtPoint”。我描述的错误与 drawAtPoint 和 drawRect

以上是关于在 UIImage 类型的对象上找不到属性“中心”*的主要内容,如果未能解决你的问题,请参考以下文章

在“RKObjectManager”类型的对象上找不到属性“managedObjectStore”

在“CBPeripheral *”类型的对象上找不到属性“uuid”

在“UITableViewCell”类型的对象上找不到属性

在“ViewController”类型的对象上找不到属性引用?

在“UIDatePicker”类型的对象上找不到属性“preferredDatePickerStyle”

lldb 错误:在类型的对象上找不到属性