我已获得此代码
override public func viewDidLoad() {
let imageBlankCard = UIImage(named: "BlankCard.png")
let imageViewBlankCard = UIImageView(image: imageBlankCard)
rockCard.addSubview(imageViewBlankCard)
scissorCard.addSubview(imageViewBlankCard)
paperCard.addSubview(imageViewBlankCard)
self.view.addSubview(rockCard)
self.view.addSubview(scissorCard)
self.view.addSubview(paperCard)
}
但是当我在游乐场跑步时,只有最新的UIView(paperCard)正确显示,其他卡片根本没有显示,如图所示here:应该有两张卡片,如上一张一个,代替箭头。 有人能帮我吗?谢谢大家!
答案 0 :(得分:1)
视图只能有一个超级视图。如果视图已经具有超视图并且该视图不是接收者,则此方法会在使接收器成为新的超级视图之前删除先前的超视图。
这解释了您的行为。
一个解决方案是创建三个单独的图像视图,并将每个图像视图添加为子视图。
根据变量名称判断,我认为你正在制作类似于石头剪刀游戏的东西。并且您有三个视图,每个视图都包含一张带有空白卡图像的图像视图。并且您想要将石头,纸张和剪刀的图像添加为图像视图的叠加层。如果这是您想要做的,为什么不只是rockCard
,paperCard
和scissorsCard
自己UIImageViews
并将图片设置为BalnkCard.png
?
let imageBlankCard = UIImage(named: "BlankCard.png")
rockCard.image = imageBlankCard
scissorsCard.image = imageBlankCard
paperCard.image = imageBlankCard