ios - 在 didset 之后对象值不会改变
问题描述
我正在使用一些可可豆荚框架来制作 UICollectionView。我能够为每个单元格和设置视图获取正确的数据。
我想拥有不一样的ani
动画结束点应该和dataSource的值有关。问题是我不能如愿使用didSet值。我添加的子视图的框架是(0,0,0,0),对象的值保持与didSet之外的初始值相同。我无法访问 setupView 函数中的数据源值。
预期效果是红色条将从左侧移动到右侧位置:
class CereCell : DatasourceCell {
override var datasourceItem: Any?{
didSet {
guard let cere = datasourceItem as? CeremonyDay else { return }
nameLabel.text = cere.name
nameLabel.frame = CGRect(x: 0, y: 0, width: 10, height: 10)
currentBar.frame = CGRect(x: 100, y: 100, width: cere.percentage*100 , height: 10)
position.x = cere.percentage
}
}
let currentBar: UIView = {
let currentBar = UIView(frame: CGRect(x: 290, y: 100, width: 300, height: 10))
currentBar.backgroundColor = .red
return currentBar
}()
override func setupViews() {
super.setupViews()
contentView.addSubview(currentBar)
let frame = currentBar.frame
print(frame)
它只是打印 (290, 100, 300, 10),这不是 didSet 中的值。
解决方案
推荐阅读
- c# - 如何从 WPF 应用程序执行“Set-ProcessMitigation -Name myapplication.exe -Enable PreferSystem32”PowerShell 命令
- c++ - Windows/C++/DLL:加载 DLL 后,函数指针偏移量(从内存中的 DLL 基地址)是否始终相同?
- css - 使显示不显示的 HTML 元素
- spring-boot - 安全性未从 Open API 生成器添加到 Swagger
- javascript - 可以在图表点上显示值
图表 - ReactJS - visual-studio-code - 按键插入某些运算符(字符行)
- html - 在同一行中对齐 div 而不使用浮点数和宽度
- laravel - 在 Laravel 中未处于调试模式时如何阻止某些路由?
- matlab - Matlab - 结合两个曲面图
- ajax - Ajax 调用 Symfony 控制器