UIImageView 使用按钮滑动
UIImageView slides using Buttons
我有一个作业卡住了。这是:
做一个画廊项目:一个大的 UIImageView 和它下面的两个按钮:Back 和 Next。在项目中添加10张图片,点击按钮分别显示上一张或下一张。
所以我做了一个数组,然后一些*愚蠢的尝试*通过这个数组。但我 100% 确定对此有一些简单的答案。
谢谢!
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imagesIV: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
}
let images = [UIImage(named: "1"), UIImage(named: "2"), UIImage(named: "3"),UIImage(named: "4"),UIImage(named: "5"),UIImage(named: "6"),UIImage(named: "7"),UIImage(named: "8"),UIImage(named: "9"),UIImage(named: "10")]
var numberOfImages = images.count
var currentImage = 0
@IBAction func forwardButton(_ sender: Any) {
guard case currentImage + 1 < images.count else {return}
currentImage += 1
}
@IBAction func backButton(_ sender: Any) {
}
}
你可以试试
@IBAction func forwardButton(_ sender: Any) {
guard currentImage + 1 < images.count else {return}
currentImage += 1
imagesIV.image = images[currentImage]
}
@IBAction func backButton(_ sender: Any) {
guard currentImage - 1 >= 0 else {return}
currentImage -= 1
imagesIV.image = images[currentImage]
}
我认为下面是一种更好的方法,专门用于使您的代码可扩展(例如,如果您有 1000 张照片,您不想将它们一张一张地手动添加到数组中):
class ViewController: UIViewController {
@IBOutlet weak var imagesIV: UIImageView!
var currentImageIndex = 0
var images : [UIImage] = []
override func viewDidLoad() {
super.viewDidLoad()
for a in 1...10 {
if let newImage = UIImage(named: "\(a)") {
images.append(newImage)
}
}
updateImageInImageView()
}
@IBAction func forwardButton(_ sender: Any) {
if currentImageIndex + 1 != images.count { currentImageIndex += 1} else { currentImageIndex = 0}
updateImageInImageView()
}
@IBAction func backButton(_ sender: Any) {
if currentImageIndex != 0 { currentImageIndex -= 1} else { currentImageIndex = images.count - 1}
updateImageInImageView()
}
func updateImageInImageView() {
imagesIV.image = images[currentImageIndex]
}
}
我有一个作业卡住了。这是:
做一个画廊项目:一个大的 UIImageView 和它下面的两个按钮:Back 和 Next。在项目中添加10张图片,点击按钮分别显示上一张或下一张。
所以我做了一个数组,然后一些*愚蠢的尝试*通过这个数组。但我 100% 确定对此有一些简单的答案。
谢谢!
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imagesIV: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
}
let images = [UIImage(named: "1"), UIImage(named: "2"), UIImage(named: "3"),UIImage(named: "4"),UIImage(named: "5"),UIImage(named: "6"),UIImage(named: "7"),UIImage(named: "8"),UIImage(named: "9"),UIImage(named: "10")]
var numberOfImages = images.count
var currentImage = 0
@IBAction func forwardButton(_ sender: Any) {
guard case currentImage + 1 < images.count else {return}
currentImage += 1
}
@IBAction func backButton(_ sender: Any) {
}
}
你可以试试
@IBAction func forwardButton(_ sender: Any) {
guard currentImage + 1 < images.count else {return}
currentImage += 1
imagesIV.image = images[currentImage]
}
@IBAction func backButton(_ sender: Any) {
guard currentImage - 1 >= 0 else {return}
currentImage -= 1
imagesIV.image = images[currentImage]
}
我认为下面是一种更好的方法,专门用于使您的代码可扩展(例如,如果您有 1000 张照片,您不想将它们一张一张地手动添加到数组中):
class ViewController: UIViewController {
@IBOutlet weak var imagesIV: UIImageView!
var currentImageIndex = 0
var images : [UIImage] = []
override func viewDidLoad() {
super.viewDidLoad()
for a in 1...10 {
if let newImage = UIImage(named: "\(a)") {
images.append(newImage)
}
}
updateImageInImageView()
}
@IBAction func forwardButton(_ sender: Any) {
if currentImageIndex + 1 != images.count { currentImageIndex += 1} else { currentImageIndex = 0}
updateImageInImageView()
}
@IBAction func backButton(_ sender: Any) {
if currentImageIndex != 0 { currentImageIndex -= 1} else { currentImageIndex = images.count - 1}
updateImageInImageView()
}
func updateImageInImageView() {
imagesIV.image = images[currentImageIndex]
}
}