ios - 创建一个仅作为 gif 的自定义 UIView

标签 ios objective-c uiview uiviewanimation

总的来说,我对 iOS 编程和 Objective-C 比较陌生。

我拥有的是一堆名为“image0.png”、“image1.png”、...、“image47.png”的图像,它们构成了一个动画图像。首先,我创建了一个按钮,当按下该按钮时,动画开始。

@property (nonatomic, strong) IBOutlet UIImageView *imageView;

...

- (IBAction)startAnimation {
  self.imageView.animationImages = [NSArray array];
  for (int i = 0; i < 48; ++i) {
    NSString *imageName = [NSString stringWithFormat:@"image%i.png", i];
    UIImage *image = [UIImage imageNamed:imageName];
    self.imageView.animationImages = [self.imageView.animationImages arrayByAddingObject:image];
  }
  self.imageView.animationDuration = 5.0;
  [self.imageView startAnimating];
}

除了您必须按下按钮才能启动外,这工作得很好。我希望动画图像立即开始,而无需按任何按钮。我试图做的是给 imageView 一个自定义的 UIImageView 类。然后在 customImageView.m 文件中,我将上面的代码推送到 initWithFrame: 方法中。

- (id)initWithFrame:(CGRect)frame
{
  self = [super initWithFrame:frame];
  if (self) {
    self.animationImages = [NSArray array];
    for (int i = 0; i < 48; ++i)
      self.animationImages = [self.animationImages arrayByAddingObject:[UIImage imageNamed:[NSString stringWithFormat:@"image%i.png", i]]];
    self.animationDuration = 5.0;
    [self startAnimating];
  }
  return self;
}

然而,现在什么也没有发生。我也试过将 [self startAnimating] 行移回 IBAction,但仍然没有。

最佳答案

将您在 startAnimation 中的代码放入 ViewDidAppear 中。 controller 的 View 一出现,它就会开始动画

关于ios - 创建一个仅作为 gif 的自定义 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23355412/

相关文章:

android - 在 webview 中使用 paypal 进行跨平台应用内购买

ios - UIActionSheet 没有显示在 ios8 窗口中?

ios - 双指缩放 UILabel

objective-c - 使用 Curlup 动画时更改 uiview 的背面颜色

ios - _UIRemoteView - 在 Xcode 中显示 View 层次结构

ios - 在 Xcode 中验证资源并为 iOS 应用程序生成 getter 代码

ios - 一个 cellForRowAtIndexPath 中的 3 个不同的 UITableViewCell

ios - CATiledLayer:如何仅重新加载一些图 block ?

objective-c - 为 iOS 构建静态 Graphviz 库

ios - 以编程方式用事件指示器替换 View