我在故事板上设置了一些自定义按钮,我试图在代码中重新创建它们,但不知何故,尽管在我的 CGRectMake 函数中使用了相同的参数,但我并没有得到正确的位置。另一个问题是自动调整掩码在代码中不起作用,因为我突出显示了左侧、底部和右侧支柱,因此按钮在 3.5" 和 4" 屏幕尺寸中都保持位置,但是我通过代码创建的按钮没有做这个。我从我的故事板发布 XML,然后是我的代码以显示我的意思。在代码之前,我正在尝试做一些上下文。我在我的项目中通过情节提要设置了多个控制器/视图中的这些自定义按钮..我”
这是我的代码:
这是来自故事板的 XML:
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="iz0-cT-TPO">
<rect key="frame" x="0.0" y="357" width="106" height="60"/>
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
<state key="normal" image="Anotpressed.png">
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<state key="highlighted" image="Apressed.png">
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</state>
</button>
我的视图控制器中的等效代码是:
(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
UIButton *AButton=[UIButton buttonWithType:UIButtonTypeCustom];
[AButton setFrame:CGRectMake(0, 357, 106, 60)];
[AButton setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin];
[AButton setImage:[UIImage imageNamed:@"Anotpressed"] forState:UIControlStateNormal];
[AButton setImage:[UIImage imageNamed:@"Apressed"] forState:UIControlStateHighlighted];
[AButton setEnabled:YES];
[self.view addSubview:AButton];
}
目前我正在做的是将情节提要按钮留在原处,然后从带有编程按钮的视图控制器继承,以查看它们是否相同,我发现我的编程按钮甚至比情节提要按钮高得多尽管它们具有相同的坐标等。
对于这个问题的冗长,我深表歉意,但我想提供一个完整的图片来说明我正在努力实现的目标。首先,如何以编程方式重新创建相同的按钮,其次,这是(继承/子类化)在我的项目中重新创建这些按钮的正确方法吗?