ios - 当 UIButton 的 subview 是 UITableViewCell 的 subview 或任何其他 View 的 subview 时,设置 UIButton 边缘插入的理想位置是什么

标签 ios swift uibutton layoutsubviews

我有一个场景,我需要为添加到 UITableViewCell 的 UIButton 更改 UIEdgeInsets,我在 layoutSubviews 中设置了它,但这被调用了很多次,它也适用于 init,但我不确定这是否真的是一个地方因为那只会调用一次。

override func layoutSubviews() {
        super.layoutSubviews()
        if imageView != nil {
            titleEdgeInsets = UIEdgeInsets(top: 52, left: -10, bottom: 0, right:-10)
        }
    }

谁能告诉我哪个是理想的地方,为什么?

最佳答案

awakeFromNib 将在从 xib 或 Storyboard加载新单元格时调用 ,但不是在重新使用单元格时。 但是在 awakeFromNib 期间,框架布局不会出现。 UIEdgeInsets 不会受框架影响,所以我更喜欢在 awakeFromNib 中调用它,而不是在 布局 subview

layoutSubviews 您将获得正确的框架,因此仅用于需要正确框架(如角半径)的时尚

关于ios - 当 UIButton 的 subview 是 UITableViewCell 的 subview 或任何其他 View 的 subview 时,设置 UIButton 边缘插入的理想位置是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50208914/

相关文章:

ios - UIView 以编程方式完成触摸

ios - 从 webView 读取 Pdf 数据

iphone - UIButton 作为 UILabel 中的 subview

ios - 如何在 Swift 中对多个按钮使用一个 IBAction?

swift - 为 UIbutton 选择状态设置图像在 swift 4 中不起作用

ios - 如何将 2 个按钮对齐到 UIToolbar 的左右边框

ios - 将应用程序安装到设备 Xcode 11.6 时无法运行应用程序错误

objective-c - 自动生成的 "ModuleName-Swift.h" header 不包括 Swift 类

swift - 来自 CGAffineTransform 的 UnsafePointer<CGAffineTransform>

macos - 尝试在 AppDelegate 中隐藏所有其他应用程序