我有 2 个按钮需要相对放置:
按钮的内容和宽度各不相同,所以我不能在故事板中将它们彼此相邻放置。我可以在情节提要中使用尾随或前导空格并将关系设为另一个按钮而不是超级视图吗?
我有 2 个按钮需要相对放置:
按钮的内容和宽度各不相同,所以我不能在故事板中将它们彼此相邻放置。我可以在情节提要中使用尾随或前导空格并将关系设为另一个按钮而不是超级视图吗?
在 IB 中很容易做到——只需选择两个按钮并从窗口右下角的约束按钮(看起来像 H 的那个)中添加“水平间距”选项。
我很好奇你为什么在故事板上这样做。如果你需要 Xib 的这个自定义,也许你想创建一个单独的“测试”项目来计算视图。从软件工程的角度来看,我强烈建议这样做,但我再次建议不要从我的学生开始任何生产级项目的故事板,它对某些东西有好处,但作为个人开发人员,它有很多下降,而且呈指数级下降属于团队开发工具。好吧,结束我自以为是的咆哮。
如果我理解正确,我可以想到三种方法来解决您的问题。问题:
解决方案建议: 1.由于问题的复杂性,我的第一个建议可能看起来不那么有趣。以编程方式计算视图,使用相对几何数学可以解决所有问题,这可能看起来令人生畏,但它确实是我认为通过创建自定义视图控制器的最干净和最简单的方法,随着信息更新控制器将管理视图为了适当地显示,这样做的好处是,如果您真的擅长相对几何,您的代码将可以跨习语工作。
用弹簧和支柱解决它,然后以你能想到的各种方式对其进行测试,但这不如基于几何的方法的数学证明那么好。为什么您可能会问,因为更高级别的解决方案并不能保证您可以控制。但是在设置时强调相对调整大小和定位。
这是不必要的浪费,并且会大大降低性能,但是我已经由计算机科学专业的大四学生上交了。(可怜的家伙从来没有得到超过 2/15 的主观分数)
为几乎所有情况创建一个视图,并在它们之间进行过于复杂的控制器切换。这方面的性能成本是巨大的,并且很有可能有人找到一种不一致的屏幕的方法。
您只能在课堂上使用它,只是一个建议
在.h
UIButton *firstButton;
UIButton *secondButton;
米
对于第一个按钮:
firstButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
firstButton.frame = CGRectMake(100, 100, 150, 60);//this can be changed at run time
[firstButton setTitle:@"TAP1" forState:UIControlStateNormal];
[firstButton addTarget:self action:@selector(someMethod1)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:firstButton];
对于第二个按钮:
secondButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
secondButton.frame = CGRectMake(firstButton.frame.origin.x+10,
firstButton.frame.origin.y+10 , firstButton.frame.size.width,
firstButton.frame.size.height);
[secondButton setTitle:@"TAP2" forState:UIControlStateNormal];
[secondButton addTarget:self action:@selector(someMethod2)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:secondButton];
除上述10外,您可以根据需要放置自己的填充值;每次你的 firstButton 宽度改变时,只需运行
secondButton.frame = CGRectMake(firstButton.frame.origin.x+10,
firstButton.frame.origin.y+10 , firstButton.frame.size.width,
firstButton.frame.size.height);
两者都会对齐。我想这有帮助