【问题标题】:CGAfflineTransform UIView and CoreGraphics conflictCGAfflineTransform UIView 和 CoreGraphics 冲突
【发布时间】:2012-03-25 04:43:42
【问题描述】:

我在我的应用程序中同时使用 UIView 和 CoreGraphics 动画,但是当我编译时,以下行给了我错误:

CGAffineTransform *baseDockTransform = (CGAfflineTransform *)[[[%c(SBIconController) sharedInstance] dock] transform];

这是错误日志:

Tweak.xm:156:警告:发现多个名为“-transform”的方法 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:156:警告:使用‘-(CGAffineTransform)transform’ /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/QuartzCore.framework/Headers/CALayer.h:153:警告:还发现“-(CATransform3D)transform” Tweak.xm:156: 错误:没有匹配函数调用‘UIView::UIView(CGAffineTransform)’

编译器不知道使用哪种方法。我怎样才能解决这个问题?

谢谢

【问题讨论】:

  • 您不能使用指向 CGAffineTransform 结构的指针。去掉星号
  • @Paul.s 好的,但现在我收到此错误。 pastie.org/3542600

标签: iphone objective-c ios core-animation core-graphics


【解决方案1】:

确保您正确投射所有内容。 [object dock] 可能会返回一个您可以从中调用 transform 的对象,但除非您正确转换它,否则编译器会报错。

试试:

Instance *sbInstance = [%c(SBIconController) sharedInstance];
UIView *transformedView = [sbInstance dock]; // assuming that dock returns an instance of UIView
CGAffineTransform backDockTransform = transformView.transform;

以这种方式做事不会有太多开销,而且更容易阅读正在发生的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    相关资源
    最近更新 更多