如何解决“无法分配类型'UIImageView的值?' 输入'UIImage?'“问题?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (73)

免责声明:我已修改/正在修改我的导师从互联网上下载的项目。

这是我的作业项目:屏幕上有3个幸运饼干,用户点击“找出我的财富”按钮,随机选择三个饼干中的一个(使用该.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
}()
提问于
用户回答回答于

您正在尝试为该UIImageView类型指定一个UIImage。这是两件不同的事情。对于初学者,我会在分配randomlyChosenFortune给“imageView ”时命名为“image” 。UIImageView是UIView的子类,即它可以添加到视图层次结构中。UIImage只是一个形象。它没有框架,角半径,边框宽度等。

这意味着,当您想要将在代码中创建的UIImage实际添加到视图中时,您需要通过以下方式执行此操作:

  1. 创建一个实例 UIImageView
  2. 将该UIImageView可选image属性设置为aUIImage
  3. 添加UIImageView到视图层次结构中

这里有一个很好的参考,你可以了解差异:UIImage和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

热门问答

实时音视频如何实现画中画的效果?

Cstar

腾讯 · 产品经理 (已认证)

推荐
开启大小画面双路编码模式的接口如下: iOS&Mac:enableEncSmallVideoStream Android:enableEncSmallVideoStream Windows(C++):enableSmallVideoStream Windows(C#):enab...... 展开详请

有没有可以提升运维效率的服务器管理软件,主要功能有哪些,求推荐?

BT宝塔面板主要功能有: 1)   一键配置服务器环境(LAMP/LNMP) 2)   一键安全重启 3)   一键创建管理网站、ftp、数据库 4)   一键配置(定期备份、数据导入、伪静态、301、SSL、子目录、反向代理、切换PHP版本) 5)   一键安装常用PHP扩展...... 展开详请

The parameter `SecretKey` is not recognized?

zqfan

腾讯 · 高级工程师 (已认证)

推荐已采纳

报错的意思是参数SecretKey无法识别,接口实际未定义这个字段。

SecretKey是你的密钥,相当于你的账户密码,调用API时是不需要传递的。

桌面浏览器版和安卓版能进入一个实时音视频房间么?

人生的旅途辣鸡前端
推荐已采纳
https://cloud.tencent.com/document/product/647/43019 image.png ... 展开详请

智聆口语评测返回结果里面的评分为0?

1,音频文件要符合16khz采样率16bit位深单声道,如果是mp3文件码率要高于48kbps,否则评分可能会出现偏低或者0 2,VoiceType是否和传入的音频文件一致,文本和音频是否一致. 3,看下sessionId是否在每次评测的时候都是一样的结果导致的   4,在初次...... 展开详请

MGOBE Team Room 和Room 的区别是什么?

推荐已采纳
您好,createRoom 的 teamNumber 为1,如果需要使用不同的teamId区分玩家,可以使用createTeamRoom。roomType这个参数是标志,例如在matchRoom接口就需要输入roomtype作为参数,之后从房间列表中找到 roomType和max...... 展开详请

所属标签

扫码关注云+社区

领取腾讯云代金券