gpt4 book ai didi

ios - 相对于彼此定位 `UITextField` 、 `UITextView` 和 `UIButton` 的优雅(即非硬编码)方式?

转载 作者:行者123 更新时间:2023-11-28 20:25:25 24 4
gpt4 key购买 nike

我的应用程序中有以下屏幕。

screen image

现在定位都是硬编码的,而且不漂亮。这是一个 TextView ,中间有几个 \n,文本框和按钮仔细定位,逐个像素进行试验,然后硬编码进去,这很好,除非我切换到 4-英寸屏幕没用。而且它很丑。

我一直在查看 stackoverflow 试图找到答案,我发现了一些关于在特定 UITextPosition 处创建 CGPoint 的东西,但不幸的是我太多了理解答案的新手。

是否有一种优雅的方式来对这些相对于彼此的位置进行软编码?

感谢您的帮助。

编辑:这是定位代码:

    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) 处,而是能够把它放在(比如说)(20, [[UIScreen mainScreen] bounds].size.height/2-100, [[UIScreen mainScreen] bounds].size.width - 20, 200) .但如果我这样做——如果 optOut 的起始位置根据屏幕的高度而移动——那么我必须移动 nameFieldcheckBox 也是,我不知道如何将它们保持在相对于 optOut 的相同位置。

最佳答案

因此,首先,我会将 UITextView 的第二部分(在所有返回之后)放入其自己的对象中,然后将其单独添加到 View 中。然后,用你所拥有的最简单的方法就是直接向元素询问框架放置,所以你在哪里

checkboxButton.frame = CGRectMake(236, 260, 44, 44);

做类似的事情(如果语法有点不对我道歉,但你可以理解)

checkboxButton.frame = CGRectMake([optOut center].y + pixelsToMoveOverToWhereYouLikeIt, [optOut center].y + pixelsToMoveDownToWhereYouLikeIt , 44, 44);

其他的依此类推。这将使所有 View 彼此相关或相对于第一个 TextView ,具体取决于您引用的对象。

关于ios - 相对于彼此定位 `UITextField` 、 `UITextView` 和 `UIButton` 的优雅(即非硬编码)方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14177982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com