UIView层次管理(sendSubviewToBack,bringSubviewToFront)

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

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

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

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

解决办法:将labelAmySegment都放在self.view层上,然后在利用sendSubviewToBackbringSubviewToFront来控制其层次关系。


  1. - (void)viewDidLoad {  
  2.     [super viewDidLoad];  
  3.    
  4.  UILabel *labelA = [[UILabel alloc]initWithFrame:CGRectMake(10, 0, 100, 43)];  
  5.  labelA.lineBreakMode = UILineBreakModeWordWrap;  
  6.  labelA.numberOfLines = 0;  
  7.  [labelA setTextAlignment:UITextAlignmentCenter];  
  8.  [labelA setBackgroundColor:[UIColor clearColor]];  
  9.  labelA.text = @"ABCDEFGHIJ";  
  10.    
  11.         ... ...  
  12.   
  13.  UISegmentedControl *mySegment = [[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@" ",@" ",@" ",nil]];  
  14.  [mySegment setFrame:CGRectMake(10, 0, 300, 43)];  
  15.  [mySegment setSelectedSegmentIndex:0];  
  16.   
  17.  [self.view addSubview:mySegment];  
  18.  [self.view addSubview:labelA];  
  19.  [self.view sendSubviewToBack:mySegment];  
  20.  ... ...  
  21.  [mySegment release];  
  22.  [labelA release];  
  23.  ... ...  
  24. }  



附:

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

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

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值