`
java-mans
  • 浏览: 11387546 次
文章分类
社区版块
存档分类
最新评论

UIView层次管理(sendSubviewToBack,bringSubviewToFront)

 
阅读更多

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

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

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

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

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


- (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()方法。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics