Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在代码中创建自定义UIButton并在xib中使用它?_Ios_Xib_Nib_Uicontrol - Fatal编程技术网

Ios 如何在代码中创建自定义UIButton并在xib中使用它?

Ios 如何在代码中创建自定义UIButton并在xib中使用它?,ios,xib,nib,uicontrol,Ios,Xib,Nib,Uicontrol,我有一个类MyButton:UIButton,它继承自UIButton。我在MyButton的initWithFrame(唯一的构造函数)中做了很多事情,比如设置背景色 现在我想在我的xib中使用这个MyButton。这样我就不会一次又一次地为我所有的按钮设置这些属性。我还为xib中的按钮在Identity Inspector中将自定义类设置为MyButton 没有任何内容仍然反映我在xib中设置的属性。如果在代码中,这本可以很容易地完成 我的问题是,, 1) 通过xib创建按钮时会调用什么(就

我有一个类
MyButton:UIButton
,它继承自UIButton。我在MyButton的initWithFrame(唯一的构造函数)中做了很多事情,比如设置背景色

现在我想在我的xib中使用这个MyButton。这样我就不会一次又一次地为我所有的按钮设置这些属性。我还为xib中的按钮在Identity Inspector中将自定义类设置为MyButton

没有任何内容仍然反映我在xib中设置的属性。如果在代码中,这本可以很容易地完成

我的问题是,, 1) 通过xib创建按钮时会调用什么(就像以编程方式创建按钮时调用initWithFrame)

2) 如何让它看到我在MyButton中设置的属性?离开锡伯银行并按程序进行是唯一的方法吗

提前谢谢

  • 通常使用
    initWithCoder:
  • 可以使用Interface Builder中的identity inspector使用属性的键路径设置值。在本例中,您可以更改视图的
    CALayer
    属性:

  • 您只需在
    xib
    文件中进行设置即可。为此:

  • 选择
    xib
    文件中的按钮
  • 单击标识检查器按钮
  • 在类字段中键入自定义类的名称(
    MyButton
    ,适用于您的案例)
  • 现在,您的按钮将使用类型
    MyButton

    编辑


    检查。这将为您提供更多的想法。

    正如我所说,它不会获取我在基类中设置的属性。我想使用MyButton自定义控件,它有一些直接从Xib设置的属性。对于第2点,我必须为我创建的每个MyButton继续这样做。这破坏了拥有自定义控件的意义。顺便说一句,您的initWithCoder注释很有帮助。我可以在那里定义属性!谢谢标记为answer还有一件事-initWithCoder将不会获取密钥路径中定义的值。不过,这些值确实是在AwakeFromNib中获取的。