多个 UIImage 视图
Posted
技术标签:
【中文标题】多个 UIImage 视图【英文标题】:Multiple UIImage view 【发布时间】: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 存在。
感谢您的帮助。
【问题讨论】:
【参考方案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
。
好的,如果我想让它动画化我需要做什么以上是关于多个 UIImage 视图的主要内容,如果未能解决你的问题,请参考以下文章
UIImagePickerController() 确实在 UIImage 视图中显示图像很好,但在集合和表的 UIImage 视图中旋转?