UIView层次管理(sendSubviewToBack,bringSubviewToFront)

举报
清雨小竹 发表于 2022/09/25 00:09:08 2022/09/25
【摘要】 目的:使segment上每一个Item的title可以换行显示。 方法:在segment control上蒙一层label,控制label,让label的text换行显示。 遇到的困难:无法将label放置在segment上。 分析原因:一开始我就犯了一个错,那就是把 mySegment作为 se...
目的:使segment上每一个Item的title可以换行显示。
方法:在segment control上蒙一层label,控制label,让label的text换行显示。
遇到的困难:无法将label放置在segment上。
分析原因:一开始我就犯了一个错,那就是把 mySegment作为 self.view的子层,把 labelA作为 mySegment的子层,然后管理 labelAmySegment,让 labelAmySegment之上。
解决办法:将 labelAmySegment都放在 self.view层上,然后在利用sendSubviewToBack,bringSubviewToFront来控制其层次关系。

- (void)viewDidLoad {

    [super viewDidLoad];

UILabel *labelA = [[UILabel alloc]initWithFrame:CGRectMake(10010043)];

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(10030043)];

[mySegment setSelectedSegmentIndex:0];


[self.view addSubview:mySegment];

[self.view addSubview:labelA];

[self.view sendSubviewToBack:mySegment];

... ...

[mySegment release];

[labelA release];

... ...

}


附:

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

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

文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/8468590

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。