UIView层次管理(sendSubviewToBack,bringSubviewToFront)
2012-09-05 15:40
471 查看
目的:使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()方法。
方法:在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()方法。
相关文章推荐
- ios工作札记2——UIView层次管理(sendSubviewToBack,bringSubviewToFront)
- UIView层次管理(sendSubviewToBack,bringSubviewToFront)
- UIView层次管理(sendSubviewToBack,bringSubviewToFront)
- UIView层次管理(sendSubviewToBack,bringSubviewToFront)
- UIView层次管理(sendSubviewToBack,bringSubviewToFront)
- UIView层次管理(sendSubviewToBack,bringSubviewToFront)
- UIView层次管理(sendSubviewToBack,bringSubviewToFront)
- UIView层次管理(sendSubviewToBack,bringSubviewToFront)
- UIView层次管理(sendSubviewToBack,bringSubviewToFront)
- UIView层次切换(bringSubviewToFront,sendSubviewToBack)的使用
- sendSubviewToBack和bringSubviewToFront
- sendSubviewToBack,bringSubviewToFront
- bringSubviewToFront()和sendSubviewToBack()
- iOS 视图层次管理 sendSubviewToBack、bringSubviewToFront
- UIView层次管理(sendSubviewToBack,bringSubviewToFront)
- BringSubviewToFront sendSubviewToBack 小结
- iOS 视图层次管理 sendSubviewToBack、bringSubviewToFront
- bringSubviewToFront/sendSubviewToBack/removeFromSuperview
- iOS bringSubviewToFront和exchangeSubviewAtIndex方法应用
- 关于delphi7中Edit菜单栏中bring to Front 和 send to back 连个功能的使用。