免责声明:我已经修改/修改了我的导师从互联网上下载的项目。
这是我的家庭作业项目:屏幕上3个幸运饼干,用户单击“查找我的财富”按钮,该按钮随机选择了三个cookie之一(使用.randomElement()
属性)。将打开一个窗口,显示该随机cookie图像。但是,我无法将窗口内的图像设置为.randomElement()
属性的结果
我已经尝试过将UIImage转换为UIImageView,反之亦然,但现在已经不知所措了。
这是正在形成的随机元素的全局类
class globalElements {
static let cookiesArray = [globalElements.numberOne,
globalElements.numberTwo, globalElements.numberThree]
static let randomlyAssignedCookie = cookiesArray.randomElement()
}
//And here is where the title error shows up:
let randomlyChosenFortune: UIImageView = {
let image = UIImageView()
image.translatesAutoresizingMaskIntoConstraints = false
image.clipsToBounds = true
image.contentMode = .scaleAspectFit
image.image = globalElements.randomlyAssignedCookie //(error: Cannot assign value of type 'UIImageView?' to type 'UIImage?')//
return image
}()
答案 0 :(得分:3)
您应将UIImage
设置为UIImageView
的{{1}}。
您的UIImage
类型可能不是globalElements.randomlyAssignedCookie
。
如果要将图像设置为UIImage
,则应使用UIImageView
类型。
只有相同类型可以彼此同步
我希望这会有所作为。
享受。
答案 1 :(得分:1)
您正在尝试将UIImageView
分配给类型UIImage
。这是两件事。首先,将randomlyChosenFortune
分配给“ imageView”时,我将命名为“ image”。 UIImageView
是UIView的子类,即可以将其添加到视图层次结构中。 UIImage
只是一张图片。它没有框架,拐角半径,边框宽度等。
这意味着,当您想向视图中实际添加在代码中创建的UIImage时,您需要执行以下操作:
UIImageView
的实例UIImageView
的可选image
属性设置为UIImage
UIImageView
添加到视图层次结构这里是您学习差异的好参考:Difference between UIImage and UIImageView
UIImage参考:https://developer.apple.com/documentation/uikit/uiimage
UIImageView参考:https://developer.apple.com/documentation/uikit/uiimageview
了解UIView子类:https://developer.apple.com/documentation/uikit/uiview和https://medium.com/@fvaldivia/view-hierarchy-in-swift-ios-9f86a7479cb5