【问题标题】:Property 'center' not found on object of type UIImage *在 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 对象属性。

标签: ios iphone uiimageview uiimage quartz-core


【解决方案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
    猜你喜欢
    • 2014-04-27
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2019-06-25
    • 2021-06-30
    • 2012-07-31
    • 1970-01-01
    相关资源
    最近更新 更多