UIView层次管理(sendSubviewToBack,bringSubviewToFront)

目的:使segment上每一个Item的title可以换行显示。

方法:在segment control上蒙一层label,控制label,让label的text换行显示。

遇到的困难:无法将label放置在segment上。

分析原因:一开始我就犯了一个错,那就是把mySegment作为self.view的子层,把labelA作为mySegment的子层,然后管理labelA和mySegment,让labelA在mySegment之上。

解决办法:将labelA和mySegment都放在self.view层上,然后在利用sendSubviewToBack,bringSubviewToFront来控制其层次关系。

- (void)viewDidLoad {

[super viewDidLoad];

UILabel *labelA = [[UILabel alloc]initWithFrame:CGRectMake(10, 0, 100, 43)];

labelA.lineBreakMode = UILineBreakModeWordWrap;

labelA.numberOfLines = 0;

[labelA setTextAlignment:UITextAlignmentCenter];

[labelA setBackgroundColor:[UIColor clearColor]];

labelA.text = @"ABCDEFGHIJ";

... ...

UISegmentedControl *mySegment = [[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@" ",@" ",@" ",nil]];

[mySegment setFrame:CGRectMake(10, 0, 300, 43)];

[mySegment setSelectedSegmentIndex:0];

[self.view addSubview:mySegment];

[self.view addSubview:labelA];

[self.view sendSubviewToBack:mySegment];

... ...

[mySegment release];

[labelA release];

... ...

}

附:

将一个UIView显示在最前面只需要调用其父视图的 bringSubviewToFront()方法。

将一个UIView层推送到背后只需要调用其父视图的 sendSubviewToBack()方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //设置尺寸为屏幕尺寸的时候self.window = [[UIWindow alloc] initWithFra...
    LuckTime阅读 4,298评论 0 0
  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 4,813评论 1 6
  • // AppDelegate.m #import "NextViewController.h" #import "...
    leaderleader阅读 1,456评论 0 0
  • 如果 人 能说出 爱 爱一个人 那么自由也可以抛却 此生你就是我的羁绊 所有的活着 就是为了这个爱的说出 假若没...
    幻辰雪阅读 1,579评论 0 2
  • 2012年5月、6月每日反思之八个习惯 1.积极处世:我们有选择的自由 □越是在逆境的时候越需要积极 □只有了解事...
    雪夜闻笛阅读 4,897评论 0 1