SWIFT(5.0 或更高版本) & Xcode(12.5) :从元组中检索图像以用作按钮背景
SWIFT(5.0 or Later) & Xcode(12.5) : Retrieving an Image from a tuple to serve as a button background
我的目标:
创建具有关联值的图像实例以用作纸牌游戏中的纸牌。
图像像这样加载到我的 ContentView.swift class:
let cardM1:Image = Image("Card_Minus_I")
let cardM2:Image = Image("Card_Minus_II")
let cardM3:Image = Image("Card_Minus_III")
let cardM4:Image = Image("Card_Minus_IV")
let cardM5:Image = Image("Card_Minus_V")
let cardM6:Image = Image("Card_Minus_VI")
下一步是将图像和值插入到元组中:
var tupleDeck = [-1:cardM1,-2:cardM2,-3:cardM3,-4:cardM4,-5:cardM5,-6:cardM6]
现在,我想更改 Button 的背景:
/*
PlayerHandButton struct is in charge of providing
stylizing that could be applied to any button
that represents a card in a player's hand.
*/
struct PlayerHandButton: ButtonStyle {
func makeBody(configuration: Configuration) -> some View {
configuration.label
.background(Image("cardSpot"))
到
.background(tupleDeck.index(forKey: -1))
但是,我得到一个错误:
在'Optional'上引用实例方法'background(_:alignment:)'要求'Dictionary<Int, Image>.Index'符合'View'
} // End of makeBody func
} // End of struct GameboardButton
阅读关于 Swift 元组的文章并使用 google 搜索是无果而终的努力。
感谢您的宝贵时间!
图片显示了图像作为按钮背景的预期结果。
为了解决这个问题,我不得不在声明期间使用元组变量的名称:
var tupleCardP1 = (Value: 1, Image: cardP1)
更改按钮背景调用成功:
.background(tupleCardP1.Image)
结果:
我的目标:
创建具有关联值的图像实例以用作纸牌游戏中的纸牌。
图像像这样加载到我的 ContentView.swift class:
let cardM1:Image = Image("Card_Minus_I")
let cardM2:Image = Image("Card_Minus_II")
let cardM3:Image = Image("Card_Minus_III")
let cardM4:Image = Image("Card_Minus_IV")
let cardM5:Image = Image("Card_Minus_V")
let cardM6:Image = Image("Card_Minus_VI")
下一步是将图像和值插入到元组中:
var tupleDeck = [-1:cardM1,-2:cardM2,-3:cardM3,-4:cardM4,-5:cardM5,-6:cardM6]
现在,我想更改 Button 的背景:
/*
PlayerHandButton struct is in charge of providing
stylizing that could be applied to any button
that represents a card in a player's hand.
*/
struct PlayerHandButton: ButtonStyle {
func makeBody(configuration: Configuration) -> some View {
configuration.label
.background(Image("cardSpot"))
到
.background(tupleDeck.index(forKey: -1))
但是,我得到一个错误:
在'Optional'上引用实例方法'background(_:alignment:)'要求'Dictionary<Int, Image>.Index'符合'View'
} // End of makeBody func
} // End of struct GameboardButton
阅读关于 Swift 元组的文章并使用 google 搜索是无果而终的努力。
感谢您的宝贵时间!
图片显示了图像作为按钮背景的预期结果。
为了解决这个问题,我不得不在声明期间使用元组变量的名称:
var tupleCardP1 = (Value: 1, Image: cardP1)
更改按钮背景调用成功:
.background(tupleCardP1.Image)
结果: