点击它时如何将子视图带到前面?

Mus*_*sis 61 ios

我有一个关于它的大约30个子视图的视图.我想在子视图的viewcontroller中添加代码,这样当我点击子视图时,子视图会扩展以填充屏幕.

我正在使用[self.view setFrame:rect]扩展子视图,这很好用.问题是其他29个子视图中的一些超出了我刚刚点击的子视图,所以它们仍然可见.

我试过bringSubviewToFront从父视图控制器使用,但这似乎没有效果.我可以在子视图的viewcontroller类中添加任何代码来实现吗?

sea*_*her 165

bringSubviewToFront应该可以工作,只要确保你正确使用它.用法是.

[parentView bringSubviewToFront:childView];
Run Code Online (Sandbox Code Playgroud)

  • 为了扩展这个答案,这段代码可以从`UIView`本身开始:`[self.superview bringSubviewToFront:self];`. (31认同)
  • 我会挑错回答`[childView.superview bringSubviewToFront:childView];`这样就没有必要"拥有"已经引用的超级视图. (2认同)

Vik*_*wal 11

使用此代码,即使您不了解superView:

在objective-c中:

[subview.superview bringSubviewToFront: subview];
Run Code Online (Sandbox Code Playgroud)

在快速:

subview.superview?.bringSubview(toFront: subview)
Run Code Online (Sandbox Code Playgroud)