子视图的位置

Posted

技术标签:

【中文标题】子视图的位置【英文标题】:the position of a subview 【发布时间】:2011-10-12 11:47:41 【问题描述】:

所以我有两个 UIImages :中心和吸引力。当我添加吸引力作为中心的子视图时:[centre addSubview:attraction]; 在我的 .xib (界面构建器)中的精确位置,我必须将其移动到另一个位置以获得我想要的位置。总结一下当我添加一个子视图,这个子视图有不同的位置我不知道为什么。请问我该如何解决?对不起我的英语我是法国人:/

【问题讨论】:

景点将被添加到中心框架...相应地更改景点框架 按照已经建议的方式设置frame - 请参阅[***.com/questions/3518804/…。 是的,但我的问题是中心随着加速度计移动,我不想要“吸引力”的固定位置 你想要你的 Attarction 也想要搬家。 是的,这正是我想要的 【参考方案1】:

您的问题在于框架设置。SubView 的框架将基于其超级视图。(即)您中心的框架基于其 superView(可能是 self.view)。但吸引力以中心的框架为参考。

【讨论】:

是的,但我的问题是中心随着加速度计移动,我不想要“吸引力”的固定位置【参考方案2】:

听起来您正在以编程方式添加子视图(因为您在代码中显示了对 addSubview 的调用),但希望在 Interface Builder 中完成定位。您应该选择其中之一。分配子视图(拖动吸引力 UIImage 使其在 Interface Builder 的对象层次结构中的中心 UIImage 下方缩进显示)并将其放置在 Interface Builder 中,或者以编程方式完成所有操作。该位置是相对于父级的,因此当您以编程方式更改父级时,看到不同的位置也就不足为奇了。

【讨论】:

是的,但我的问题是中心随着加速度计移动,我不想要“吸引力”的固定位置 如果您要移动“吸引力”,最简单的可能是以编程方式完成所有定位,根本不关心它在您的 xib 中的定位方式。只需以编程方式设置“吸引力”对象的框架属性。请记住(在您调用 [center addSubview:attraction] 之后)它的位置将相对于它。如果这不适合(也许你会遇到剪裁问题),那么只需删除 [center addSubview:attraction] 并确保你的吸引力对象位于“中心之上”,只需在必要时在 xib 中重新排序即可。

以上是关于子视图的位置的主要内容,如果未能解决你的问题,请参考以下文章

重置 mdi 子视图位置

子视图与子视图控制器 z 位置

在Subview位置选择滚动视图子视图滚动

UIView convertRect: - 找到子视图位置两个视图深

视图控制器转换动画子视图位置

在视图控制器生命周期中添加子视图的位置