【问题标题】:Multiple UIImage view多个 UIImage 视图
【发布时间】:2017-01-15 07:31:22
【问题描述】:

我目前通过以下方式将图像设置到我的 UIImageView 中:

art_image.image = UIImage(named:(artworkPin.title!))

其中 art_image 是图像视图,artworkPin.title 是指图像的名称。但是,如果 UIImageView 存在,我想将第二张图片添加到我想将其编程为

       art_image.image = UIImage(named:(artworkPin.title + "1")?)

这行得通吗?在这种情况下,我会将第二张图片命名为第一张图片的名称,但末尾带有“1”。示例:“Photo.jpeg”和“Photo1.jpeg”都将在图像视图中如果 Photo1.jpeg 存在。

感谢您的帮助。

【问题讨论】:

    标签: ios arrays swift uiimageview uiimage


    【解决方案1】:

    我自己也遇到过类似的任务。我所做的是,我用UIImageView 的框架创建了一个UIScrollView,它的contentSize 将是imageView.frame.size.width * numberOfImages

    let scrollView = UIScrollView(frame: view.bounds)
    view.addSubview(scrollView)
    
    scrollView.contentSize = CGSize(width: scrollView.bounds.size.width * CGFloat(numberOfImages), height: scrollView.bounds.size.height))
    
    for i in 0...<numberOfImages.count-1 {
        let imageView = UIImageView(frame: CGRect(x: scrollView.bounds.size.width * CGFloat(i), y: scrollView.bounds.origin.y, width: scrollView.bounds.size.width, height: scrollView.bounds.size.height))
        imageView.image = UIImage(named: "artwork" + "\(i)")
        scrollView.addSubview(imageView)
    }
    

    如果需要,您可以使用Timer 对其进行动画处理。

    scrollView.setContentOffset(scrollPoint, animated: true)
    

    【讨论】:

      【解决方案2】:

      您一次只能在 imageivew 中显示 1 张图片,所以如果您有如下几行:

      art_image.image = UIImage(named:(artworkPin.title!))
      art_image.image = UIImage(named:(artworkPin.title! + "1")?)
      

      art_image 将仅由 Photo1 组成,前提是存在这样的图像,并且未包装的 artifactsPin.title 也不为零,否则您可能会看到一些不同的结果。

      如果您确实想将多个图像添加到图像视图以实现动画效果,则需要使用 UIImageView 的 animationImages 属性,该属性以 UIImages 数组为例

      art_image.animationImages = [UIImage.init(named:"Photo")!, 
                                   UIImage.init(named:"Photo1")!]
      

      希望对你有帮助

      编辑

      var imagesListArray = [UIImage]()
      
      for position in 1...5
      {
         if let image = UIImage.init(named: ("Photo\(position)"))
         {
            imagesListArray.append(image)
         }
      }
      
      art_image.animationImages = imagesListArray
      art_image.animationDuration = 3.0
      art_image.startAnimating()
      

      这将是一种更安全的添加图像的方法,因此它只会添加不为零的图像并添加 Photo1、Photo2 ..... Photo5

      关于您的其他问题:

      如果你希望用户能够

      你说的动画是什么意思? 我又添加了两行代码,结果如下:

      art_image.animationDuration = 1.0
      art_image.startAnimating()
      

      它会给你这样的东西:

      如果您希望用户滑动,则需要进行一些更改,例如: 例如使用滚动视图,collectionview 是最简单的,或者在滑动时使用手势识别器需要更改图像

      编辑

      看看这个例子。想象一下每个按钮都是您的注释,所以当我点击它时,图像会发生变化。

      我有 3 个名为 Photo11.png、Photo21.png 和 Photo31.png 的图像,这是我在按钮处理程序中的代码

      @IBAction func buttonTapped(_ sender: UIButton)
      {
          if let image = UIImage.init(named: sender.currentTitle!+"1")
          {
                  art_image.image = image
          }
      }
      

      如您所见,我正在设置带有按钮标题 +“1”的图像,以便显示 Photo11.png 或 Photo21.png 等

      【讨论】:

      • 动画是什么意思?我希望它是这样用户可以滑动图像以显示第二张图像。另外,我可以更改“!”吗? '?' 可选这样它只会在存在时添加它?
      • 我该如何更改它以适合我的代码?我不能将它作为“照片(位置)”作为艺术品。标题会根据选择的艺术品而变化。
      • 会是:if let image = UIImage.init(named: (artworkPin.title! + \ ("position")) 吗?
      • @T.Kearsley 如果您希望用户滑动查看另一张图片,仅仅一个简单的UIImageView 是不够的。您需要使用UIPageView
      • 好的,如果我想让它动画化我需要做什么
      猜你喜欢
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 2015-04-11
      相关资源
      最近更新 更多