我是一名學生,是 swift 的新手。這項作業要求我為 iOS 創建一個應用程式,該應用程式顯示影像以及相關的描述性文本。我有 10 張影像,它們的描述都存盤在字典中。我有一個 ImageView 和 textLabel 。我有一個顯示當前影像的功能和兩個按鈕(上一個和下一個)來顯示上一個影像或下一個影像。但是我的代碼有一些錯誤。請幫忙。泰。
import UIKit
class ViewController: UIViewController {
var count = 0
var photoCollection : [UIImage: String] = [ // store into dictionary
UIImage(named: "P1")!: "City Tavern Bathroom",
UIImage(named: "P2")!: "Shafer Trail, Island in the Sky District",
UIImage(named: "P3")!: "Rivers Bend Group Campground",
UIImage(named: "P4")!: "Delta at Lake Mead",
UIImage(named: "P5")!: "Deer between Sequoias",
UIImage(named: "P6")!: "Arlington House, The Robert E. Lee Memorial",
UIImage(named: "P7")!: "Brink of the Lower Falls of the Yellowstone River",
UIImage(named: "P8")!: "Garage Exterior",
UIImage(named: "P9")!: "DSCF1199",
UIImage(named: "P10")!: "The Bi-national Formation"
]
@IBOutlet weak var photo: UIImageView!
@IBOutlet weak var Text: UILabel!
func showImage() {
if count < photoCollection.count {
if let images = photoCollection[count] as? Dictionary<UIImage, String> {
photo.image = images.keys.first
Text.text = images.values.first
}
} else {
debugPrint("Failed!")
}
}
@IBAction func Previous(_ sender: UIButton) {
count = count - 1
showImage()
}
@IBAction func Next(_ sender: UIButton) {
count = count 1
showImage()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
uj5u.com熱心網友回復:
字典不是適合這項作業的工具,但如果您必須使用字典,您至少應該確保鍵比 UIImage 更用戶友好。如果你定義了一個型別來保存影像和文本,你可以使用一個整數來鍵入字典來訪問你需要的值。
class ViewController1: UIViewController {
struct Photo {
let image: UIImage?
let text: String
}
var count = 0
var photoCollection: [Int: Photo] = [
0: Photo(image: UIImage(named: "P1"), text: "City Tavern Bathroom"),
1: Photo(image: UIImage(named: "P2"), text: "Shafer Trail, Island in the Sky District"),
2: Photo(image: UIImage(named: "P3"), text: "Rivers Bend Group Campground"),
3: Photo(image: UIImage(named: "P4"), text: "Delta at Lake Mead"),
4: Photo(image: UIImage(named: "P5"), text: "Deer between Sequoias"),
5: Photo(image: UIImage(named: "P6"), text: "Arlington House, The Robert E. Lee Memorial"),
6: Photo(image: UIImage(named: "P7"), text: "Brink of the Lower Falls of the Yellowstone River"),
7: Photo(image: UIImage(named: "P8"), text: "Garage Exterior"),
8: Photo(image: UIImage(named: "P9"), text: "DSCF1199"),
9: Photo(image: UIImage(named: "P10"), text: "The Bi-national Formation"),
]
func showImage() {
guard let item = photoCollection[count] else { return }
photo.image = item.image
Text.text = item.text
}
}
uj5u.com熱心網友回復:
我會使用一系列字典:
import UIKit
class ViewController: UIViewController {
var count = 0
var photoCollection: [[String:Any]] = [
["image": UIImage(named: "P1")!, "text": "City Tavern Bathroom"],
// Other photos
]
@IBOutlet weak var photo: UIImageView!
@IBOutlet weak var Text: UILabel!
func showImage() {
photo.image = photoCollection[count]["image"] as! UIImage
Text.text = photoCollection[count]["text"] as! String
}
@IBAction func Previous(_ sender: UIButton) {
guard count > 0 else {return}
count -= 1
showImage()
}
@IBAction func Next(_ sender: UIButton) {
guard count < photoCollection.count - 1 else {return}
count = 1
showImage()
}
}
當無法后退或前進時,您也可以禁用按鈕。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358195.html
下一篇:從相關的不同串列創建字典
