【问题标题】:how to init uiView frame如何初始化uiView框架
【发布时间】:2017-01-05 09:53:07
【问题描述】:

enter image description here嗨,我在目标 c 和 .m 文件中创建了一个 UIView,我像这样初始化。所以我可以在任何视图中初始化框架 在 setupDefaultAttributes 我设置元素的默认属性

    - (id)initWithFrame:(CGRect)frame
{
    if ((self = [super initWithFrame:frame]))
    {
        [self setupDefaultAttributes];
    }

    return self;
}

现在我想在 Swift 中使用这段代码

我该怎么做?当我在 swift 中尝试此代码时,我收到此错误

属性 'self.delegate' 未在 super.init 调用中初始化

【问题讨论】:

    标签: ios objective-c swift uiview swift3


    【解决方案1】:

    我不确定您的确切要求,但对于上述目标 c 语法,您可以使用以下代码。它可以帮助您实现目标

     override init(frame: CGRect) {
    
      super.init(frame: frame)
      setDefultAttributes()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    func setDefultAttributes(){
    
    }
    

    【讨论】:

    • Property 'Self.newFrame' not initialized at Super.initcall 这个错误在这条线上给了我 super.init(frame: frame)
    • 如果可能的话,您能否为您编写的代码和您遇到的错误分享一个屏幕截图。
    • 我上传的图片请看
    • 能否请您检查一下您是否提前初始化了天气。还要检查你是否正在扩展 UIView。
    【解决方案2】:

    我认为你必须重写 init 方法(不带参数)你应该初始化 newFrame 属性 (现有方法保持不变,只需添加新方法)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      • 2012-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多