iOS - 如何相对于另一个添加一个 UIButton?

Posted

技术标签:

【中文标题】iOS - 如何相对于另一个添加一个 UIButton?【英文标题】:iOS - how to add one UIButton with respect to another? 【发布时间】:2012-02-01 20:42:42 【问题描述】:

我是 ios 新手,请多多包涵。我有一个空白页,其中有一个按钮。我想在视图中添加另一个按钮,就在居中按钮的下方。我该怎么做?我已经添加了这样的第一个按钮 -

float x=60, y=200, dy=50;
CGRect frame = CGRectMake(x, y, 200, dy);
UIButton *inboxButton = [[[UIButton alloc] initWithFrame:frame]autorelease];
inboxButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
inboxButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

....

[theView addSubview:inboxButton];

【问题讨论】:

【参考方案1】:

只需根据第一帧计算第二帧

CGRect secondFrame = CGRectMake(CGRectGetMinX(frame),
    CGRectGetMaxY(frame) + 8.0, // some y padding
    CGRectGetWidth(frame),
    CGRectGetHeight(frame));

【讨论】:

你正在重叠第一个按钮。【参考方案2】:

你并不是说你是否需要第二个自己居中 - 我假设你只想要它在下面,与第一个左对齐:

UIButton *outboxButton = [[[UIButton alloc] initWithFrame:CGRectMake(frame.x, 
                                                                     frame.y + dy + 10.0f, 
                                                                     frame.width,
                                                                     frame.height)] autorelease];
[theView addSubview:outboxButton];

我在这里所做的只是重用第一个按钮的水平坐标。对于垂直坐标,我使用原始坐标并为其添加高度和偏移量(10.0f)。宽度和高度都取自第一个按钮,假设它们的大小应该匹配。

正如您将看到的,没有办法隐式地完成此计算,我假设您实际上想找出这一点 - 也就是说,只需提供一些排序参数。

【讨论】:

以上是关于iOS - 如何相对于另一个添加一个 UIButton?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 相对于另一个元素定位一个元素?

如何在 Flutter 中相对于另一个小部件定位小部件?

如何在顺风中相对于另一个 div 设置绝对位置?

Three.js如何让对象相对于另一个旋转?

给定两条绝对路径,我如何表达其中一条相对于另一条的路径?

使用 Pydub 相对于另一个音频文件设置 rms