【问题标题】:Trying to change a UIImageView each 10 seconds尝试每 10 秒更改一次 UIImageView
【发布时间】:2012-05-09 09:50:18
【问题描述】:

好吧,我的一个视图中有一个 UIImageview。我想每 10 秒更换一次图像,但我不知道该怎么做。

有什么建议吗?

【问题讨论】:

标签: iphone objective-c animation uiimageview


【解决方案1】:

您将需要使用计时器。

NSTimer *timer = [NSTimer timerWithTimeInterval:10 target:self selector:@selector(changeImage) userInfo:nil repeats:true];

及实现换图方法:

- (void) changeImage {
    imageView.image = newImage;
}

您可以将此计时器放入包含您的 ImageView 的 ViewController 中,或者您可以将 ImageView 子类化并让它自己管理其图像(如果有更多独立的 imageview 需要更改其图像,则特别有用

【讨论】:

    【解决方案2】:

    首先创建图像数组。

    NSArray *images = [NSArray arrayWithObjects:[UIimage imagenamed:@"image1.png"],[UIimage imagenamed:@"image2.png"],[UIimage imagenamed:@"image3.png"],[UIimage imagenamed:@"image4.png"]]];
    

    然后将数组设置为 UIImageViews "animationImages"属性

    imageView.animationImages = images;
    

    设置动画时间。

    imageView.animationDuration = 10;
    

    开始动画..

    [imageView startAnimating];
    

    要停止动画,只需这样做

    [imageView stopAnimating];
    

    很简单..

    【讨论】:

    • +1 表示正确答案 - 无需为此类任务重新发明轮子。
    • 看起来如果图像很大,这可能会导致内存问题,但这确实是小图像的最佳解决方案
    【解决方案3】:

    对于 Swift 4 位置 Timer.scheduledTimer 致电 viewWillAppearviewDidAppear

    Timer.scheduledTimer(timeInterval: 10,
                             target: self,
                             selector: #selector(self.changeView),
                             userInfo: nil,
                             repeats: true)
    

    并为changeView功能改变图像

    @objc func changeView() {
    //change image in this function
    }
    

    【讨论】:

      猜你喜欢
      • 2013-05-25
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多