我的应用程序中有以下屏幕。
现在定位都是硬编码的,并不漂亮。它是一个文本视图,中间有几个\n
s,一个文本字段和按钮仔细定位,逐个像素地试验,然后硬编码,这很好,除非我切换到 4 英寸的屏幕,这是没用的。再加上它很丑。
我一直在寻找 stackoverflow 试图找到答案,我发现了一些关于CGPoint
在特定位置创建 a 的东西UITextPosition
,但不幸的是,我太新手了,无法理解答案。
有没有一种优雅的方式来软编码这些相对于彼此的位置?
谢谢你的帮助。
编辑: 这是定位代码:
if (!optOut) {
optOut = [[UITextView alloc] initWithFrame:CGRectMake(20, 95, [[UIScreen mainScreen] bounds].size.width - 20, 200);
optOut.backgroundColor=[UIColor clearColor];
optOut.text = @"\n\n\nI hope to update the Haiku app periodically with new haiku, and, if you'll allow me, I'd like permission to include your haiku in future updates. If you're okay with my doing so, please enter your name here so I can give you credit.\n\n\n\nIf you DON'T want your haiku included \nin future updates (which would make \nme sad), check this box.";
}
[self.view addSubview:optOut];
if (!checkboxButton) {
checkboxButton = [UIButton buttonWithType:UIButtonTypeCustom];
checkboxButton.frame = CGRectMake(236, 260, 44, 44);
[self.view addSubview:checkboxButton];
}
[textView resignFirstResponder];
if (!nameField)
{
nameField=[[UITextField alloc] initWithFrame:CGRectMake(40, 223, 240, 30)];
[self.view addSubview:nameField];
}
而不是放置optOut
在(20, 95, [[UIScreen mainScreen] bounds].size.width - 20, 200)
,我希望能够把它放在 (say) (20, [[UIScreen mainScreen] bounds].size.height/2-100, [[UIScreen mainScreen] bounds].size.width - 20, 200)
。但是如果我这样做——如果optOut
移动的起始位置取决于屏幕的高度——那么我也必须移动nameField
,checkBox
而且我不知道如何将它们保持在相对于optOut
.