我有plist文件和數據庫,在plist文件有英文字母和數據庫行都有字符串,例如(倫敦),我將字符串轉換爲字符數組的setTitle和追加到plist文件。我通過(for循環)創建了14個UIButton,並且我從數據庫的行中獲得了setTitle,並給予了洗牌並添加了來自plist的信件並給予了洗牌。斯威夫特3 - UIButton的加入從plist中和數據庫
所以我的問題是,從數據庫中添加我的人物時,告訴我剛剛從數據庫中的字符和洗牌是這樣的:
但我不需要,只是我需要先加入以設置標題從數據庫中的所有字符和洗牌,剩下的空按鈕添加像這樣的plist文件:
我怎樣才能做到像上面的圖片(圖片2次)?!
這是我的代碼,這有什麼錯編寫代碼? :
let fileName : String = " EnglishLetters"
let fileExt : String = "plist"
let pathRes = Bundle.main.path(forResource: fileName, ofType: fileExt)
let pathDict = NSDictionary(contentsOfFile: pathRes!)
var letters : [String] = pathDict?.object(forKey: "Letters") as! [String]
for data in listdata { // SQLite database
let dataAnswer = data.ans // ans is a row in the SQLite database
let dataArrayAnswer = dataAnswer.characters.map{String($0)}
letters.append(contentsOf: dataArrayAnswer)
for char in dataArrayAnswer {}
for i in 1...14 {
let tileButton = UIButton(type: .roundedRect)
let lettersAns = dataArrayAnswer.shuffled()[letters.distance(from: id, to: id)] // id is parameter
tileButton.setTitle(lettersAns, for: .normal)
tileButton.titleLabel?.font = UIFont(name: "HelveticaNeueW23forSKY-Bd", size: 15)
tileButton.setTitleColor(.black, for: .normal)
tileButton.setBackgroundImage(UIImage(named: "Cell"), for: .normal)
tileButton.addTarget(self, action: #selector(moveTile(sender:)), for: .touchUpInside)
xAxis = xAxis + buttonWidth + space
view.addSubview(tileButton)
if i%7 == 0 {
xAxis = emptySpace/2
yAxis = yAxis2 + space
}
}
}
}
我認爲你的邏輯是有缺陷的。你必須做的,有一個字母數組顯示:'lettersForAnswer:[String]',爲它添加所有答案的字母。然後,'爲我in lettersForAnswer.count .. 14 {//從所有可用的字母中添加一個隨機字母}',隨機播放它,然後執行for循環來構造按鈕。 – Larme
對不起,你能更清楚地寫出答案嗎?因爲代碼在評論中不清楚! @Larme –
我現在在做什麼?! :(@Larme –