iphone - 为什么我无法执行任何 CABasicAnimation 或关键帧动画内容?

标签 iphone cocoa-touch uikit core-animation cabasicanimation

由于某种原因,Xcode 告诉我,当我使用 kCAFillModeForwards 之类的东西时,它找不到符号。我必须包含一个库或类......但是是哪一个呢?正常的核心动画工作正常,如 [myView beginAnimations...]。让更复杂的动画作品发挥作用的技巧是什么?

我已包含在 .h 文件中:

#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>

@interface TestClass : UIView {

}
// ...

我运行这段代码:

- (void)testAnimation {
    CABasicAnimation *fadeInAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
    [fadeInAnimation setToValue:[NSNumber numberWithFloat:1.0]];
    fadeInAnimation.fillMode = kCAFillModeForwards;
    fadeInAnimation.removedOnCompletion = NO;
    // other stuff deleted to limit error possibilities...should at least compile
}

这种情况发生在我构建时(确实清理了很多次),2 个错误:

    cd "/Users/thanks/Desktop/Thanks/iPhone Development/TestApp"
    setenv MACOSX_DEPLOYMENT_TARGET 10.5
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.0 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.2.1.sdk "-L/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/Debug-iphonesimulator" "-F/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/Debug-iphonesimulator" -filelist "/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/TestApp.build/Debug-iphonesimulator/TestApp.build/Objects-normal/i386/TestApp.LinkFileList" -mmacosx-version-min=10.5 -framework Foundation -framework UIKit -framework CoreGraphics -o "/Users/thanks/Desktop/Thanks/iPhone Development/TestApp/build/Debug-iphonesimulator/TestApp.app/TestApp"
Undefined symbols:
  ".objc_class_name_CABasicAnimation", referenced from:
      literal-pointer@__OBJC@__cls_refs@CABasicAnimation in TestClassTestClass.o
  "_kCAFillModeForwards", referenced from:
      _kCAFillModeForwards$non_lazy_ptr in TestClass.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
      ".objc_class_name_CABasicAnimation", referenced from:
          literal-pointer@__OBJC@__cls_refs@CABasicAnimation in TestClass.o
      "_kCAFillModeForwards", referenced from:
          _kCAFillModeForwards$non_lazy_ptr in TestClass.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status

它说 undefined symbol :

我必须包含一些框架吗?

我已经包含了:

CoreGraphics.framework 基础框架 UIKit.framework

当我删除所有代码,但导入 QuartzCore/QuartzCore.h 时,我不会收到任何错误。所以我打赌导入有效,但不确定。

已解决

我错过了包含 QuartzCore 框架!!

最佳答案

您是否在 header 中导入 quartz ?

#import <QuartzCore/QuartzCore.h>

QuartzCore 包含 CAAnimation header

关于iphone - 为什么我无法执行任何 CABasicAnimation 或关键帧动画内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1158956/

相关文章:

objective-c - 我如何使用 UIPageControl?

iphone - 如何在重置之前更新密码标签?

objective-c - iOS启动后台线程

ios - 如何在 iOS 应用程序 + Swift 中控制 googlemap 的大小?

iphone - 在视口(viewport)中设置 width=device-width 会破坏布局

ios - 尝试将 AVComposition 的 TimeRange 插入 AVMutableComposition 时出现错误 -11800

ios - 如何创建具有不同页面大小的 UIScrollView(页面对齐、弹跳)

iphone - 如何使用 iPhone SDK 创建 PDF 文档?

ios - Airbnb 是如何实现用户菜单的?

iphone - 为什么即使我覆盖 touchesMoved :withEvent:? UIScrollView 的子类仍然滚动