在幻灯片 iOS APP 中从 URL Xcode 9 加载图像

Posted

技术标签:

【中文标题】在幻灯片 iOS APP 中从 URL Xcode 9 加载图像【英文标题】:Load Images from URL Xcode 9 in slideshow iOS APP 【发布时间】:2018-08-13 05:13:38 【问题描述】:

大家好,我想知道如何从 URL 加载图像,即使我在 ios 应用中添加了 1、2、3 等

本练习的重点是远程更改图像并在应用中实时显示

实际上我可以显示来自 iOS 设备的图像,这是我的代码

import UIKit

class ViewController: UIViewController 

@IBOutlet weak var ImageView: UIImageView!

var timer: Timer!
var counter = 1

override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    self.ImageView.image = UIImage(named: "IMAGE_TO_SHOW1")
    counter+=1;
    timer=Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(animate), userInfo: nil, repeats: false)


@objc func animate()
    print("Animate Method")

    UIView.transition(with: self.view, duration: 5, options: UIViewAnimationOptions.curveEaseOut,
                      animations: 
                        UIView .setAnimationRepeatCount(5)
                        if(self.counter<6)
                            let name = "IMAGE_TO_SHOW\(self.counter)"
                            self.ImageView.image=UIImage(named: name)
                            self.counter+=1;
                            Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(self.animate), userInfo: nil, repeats: false)
                        ;if(self.counter==6)
                            self.counter=1

                        

    , completion: finished in


    )




但我只能显示 5 张图像,如果我想要 1 或 2 或 3 或 n,我需要显示 n 数量的图像

示例:

如果我想要 4 张图片然后显示

https://www.images.com/IMAGE_TO_SHOW1
https://www.images.com/IMAGE_TO_SHOW2
https://www.images.com/IMAGE_TO_SHOW3
https://www.images.com/IMAGE_TO_SHOW4

如果我想要 3 张图片然后显示

https://www.images.com/IMAGE_TO_SHOW1
https://www.images.com/IMAGE_TO_SHOW2
https://www.images.com/IMAGE_TO_SHOW3

******编辑****** 我将解释我需要什么

我有 2 家商店(我自己的服装店) 我有 4 个 ipad(每个商店 2 个) 我想在每个 iPad 上显示折扣幻灯片 我有一个服务器,我可以在其中发布带有直接 URL 的图像 (www.domain.com/image1.jpg) 我想通过在我的服务器中上传图像来远程更改幻灯片图像 有时我有2个折扣,有时我有5个折扣

实际上我必须更新应用程序才能显示新图像,但我只想通过将图像上传到服务器来做到这一点 如何仅通过更改服务器上的图像来显示幻灯片更新的图像?

******编辑******

提前感谢您的帮助

【问题讨论】:

创建简单的api 服务以调用images array 并将json 返回。然后你可以在一定时间后调用 api。或者您可以无限计数,如果没有来自url 的数据,您可以停止循环以获取更多图像尝试(我不知道这是最好的方法)。 【参考方案1】:

您已将计数器从 1 开始为“var counter = 1”

之后你通过“if(self.counter

所以在这个流程中,计数器对 1,2,3,4 和 5 执行条件。当它等于 6 时,条件结果为 false。

你需要做的是, 使您的计数器等于 0 并将条件设为 "如果计数器

【讨论】:

如果您不明白,请发表评论。我会用代码给你解释 谢谢。实际上我的代码工作正常,但它使用保存在应用程序中的图像,我需要显示来自 URL 的图像,如果图像数量发生变化,它应该只显示 URL 中的图像数量。如果能用代码解释就好了。 @Adan_004 这是在加载实际图像之前使用占位符图像从 URL 显示图像的工作代码 ***.com/a/51746300/10150796【参考方案2】:

因为您将动画完成处理程序中的计数器重置为:

if(self.counter==6)
     self.counter=1

根据您的数组添加动态计数而不是 6(如果您将图像 url 保存在数组中)。

if(self.counter==YOUR_IMAGE_URLS_ARRAY_COUNT)
     self.counter=1

~编辑~

动态加载图片可以使用Kingfisher library。

该库提供了使用完成处理程序从 url 设置图像的方法。如果你愿意,你可以在完成处理程序中设置动画,或者你可以设置带有动画的图像。

你可以使用的方法:

imageViewBg.kf.setImage(with: , placeholder: , options: , progressBlock: , completionHandler: )

希望对你有帮助

【讨论】:

谢谢。但是如何使用 URL 图片而不是使用来自应用程序的内部图片 那么您的问题还不清楚,无论如何您可以使用任何第三方图像加载器动态加载图像。喜欢kingfisher library 对不起,我是 iOS 新手,如何使用动态图像计数来使用这个库 我想要做的是将图像上传到网页,然后应用程序将从该网页中获取所有图像,即使它是 1、2 或更多图像,然后将它们显示为幻灯片显示(实际上以幻灯片形式显示 5 张图片)谢谢 你的要求很不清楚。根据您要从存储在某个数组中的 url 添加图像的问题。你能详细说明一下实际要求吗?以便轻松解决问题

以上是关于在幻灯片 iOS APP 中从 URL Xcode 9 加载图像的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中从 Google 的 GEOLocation 获取 ZERO_RESULTS 响应。

Xcode 6 - 如何从终端打开 IOS Simulator Mobile Safari 中的 Url?

Xcode:如何在 UIScrollView 中从 XIB 文件添加自定义视图

Xcode6.4注册URL Scheme步骤详解

在 XCode 中从 Objective-C 访问 JavaScript 变量

IOS设置方向不起作用