bringSubviewToFront + setFrame 不起作用

Posted

技术标签:

【中文标题】bringSubviewToFront + setFrame 不起作用【英文标题】:bringSubviewToFront + setFrame doesn't work 【发布时间】:2013-08-06 15:35:41 【问题描述】:

我正在尝试将视图置于前面,然后从该视图设置框架。

但是位置没有改变。如果我评论[viewGeral bringSubviewToFront:viewSearchPp]; 行并设置viewSearchPp 的框架。有效

 [viewGeral bringSubviewToFront:viewSearchPp];
   [viewSearchPp setFrame:CGRectMake(viewSearchPp.frame.origin.x, viewSearchPp.frame.origin.y + 100, viewSearchPp.frame.size.width, viewSearchPp.frame.size.height - 100)];

【问题讨论】:

【参考方案1】:

不应该是bringSubviewToFront,然后是setFrame,它应该是setFrame,然后是bringSubviewToFront。

应该是这样的

[viewSearchPp setFrame:CGRectMake(viewSearchPp.frame.origin.x, viewSearchPp.frame.origin.y + 100, viewSearchPp.frame.size.width, viewSearchPp.frame.size.height - 100)];

[viewGeral bringSubviewToFront:viewSearchPp];

【讨论】:

【参考方案2】:

如果您将 viewSearchPp 添加为 viewGeral 的子视图,则问题可能是您使用的是 frame 属性而不是 bounds。试试这个:

[viewGeral bringSubviewToFront:viewSearchPp];
[viewSearchPp setFrame:CGRectMake(viewSearchPp.bounds.origin.x,
                                  viewSearchPp.bounds.origin.y + 100,
                                  viewSearchPp.bounds.size.width,
                                  viewSearchPp.bounds.size.height - 100)];

让我知道这是否有效。

【讨论】:

以上是关于bringSubviewToFront + setFrame 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

bringSubviewToFront 将 UIView 移回原始位置

在 Ipad 滚动视图中使用bringSubviewToFront

bringSubviewToFront 不适用于下拉视图(UIView)

我将如何为bringSubviewToFront 编写 UIView 淡入动画

viewDidLoad() 中的 addSubView() 和 bringSubViewToFront() 不起作用

UIView bringSubviewToFront: *不*将视图带到前面