zoukankan      html  css  js  c++  java
  • IOS中Label根据上个label的内容设置下个label的frame

    #import "ViewController.h"

    @interface ViewController ()

    @property(nonatomic,strong)UILabel *labelOne;

    @property(nonatomic,strong)UILabel *labelTwo;

    @property(nonatomic,copy)NSString *str;

    @end

    @implementation ViewController

    - (void)viewDidLoad {

        [super viewDidLoad];

        // Do any additional setup after loading the view, typically from a nib.

        NSString *strOne=@"搜房网是全球最大的房地产家居网络平台,页面浏览量和访问量在同类网站中处于绝对领先地位。拥有9000名员工,网络业务覆盖300多个城市,在中国100多个城市拥有分公司和办公室。2010年9月搜房网(股票代码SFUN)在美国纽约证券交易所成功上市。搜房网是全球最大的房地产家居网络平台,页面浏览量和访问量在同类网站中处于绝对领先地位。拥有9000名员工,网络业务覆盖300多个城市,在中国100多个城市拥有分公司和办公室。2010年9月搜房网(股票代码SFUN)在美国纽约证券交易所成功上市。";

        self.str=strOne;

        

         self.labelOne=[[UILabel alloc]init];

        self.labelOne.numberOfLines=0;

        self.labelOne.font=[UIFont systemFontOfSize:14];

        self.labelOne.textAlignment=NSTextAlignmentCenter;

        self.labelOne.text=strOne;

        

        

        self.labelTwo=[[UILabel alloc]init];

        self.labelTwo.numberOfLines=0;

        self.labelTwo.font=[UIFont systemFontOfSize:20];

        self.labelTwo.textAlignment=NSTextAlignmentCenter;

        self.labelTwo.text=strOne;

        

        [self.view addSubview:self.labelOne];

        [self.view addSubview:self.labelTwo];

    }

    - (void)didReceiveMemoryWarning {

        [super didReceiveMemoryWarning];

        // Dispose of any resources that can be recreated.

    }

    -(void)viewWillAppear:(BOOL)animated{

        

        CGRect labelOneFrame=[self.str boundingRectWithSize:CGSizeMake(200, 0) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]} context:nil];[super viewWillAppear:animated];

        CGPoint PointOne=CGPointMake(100, 50);

        

        CGRect labelframe;

        labelframe.origin=PointOne;

        labelframe.size=labelOneFrame.size;

        

        self.labelOne.frame=labelframe;

        

        CGRect labelTwoFrame=[self.str boundingRectWithSize:CGSizeMake(200, 0) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:20]} context:nil];

        

        CGPoint PointTwo=CGPointMake(self.labelOne.frame.origin.x, CGRectGetMaxY(self.labelOne.frame));

        labelframe.origin=PointTwo;

        labelframe.size=labelTwoFrame.size;

        

        self.labelTwo.frame=labelframe;

    }

    @end

     其实用自动布局就不用这么麻烦了

  • 相关阅读:
    文件系统的几种类型:ext3, swap, RAID, LVM
    文件系统的几种类型:ext3, swap, RAID, LVM
    HTML特殊符号、常用字符实体
    HTML特殊符号、常用字符实体
    HTML特殊符号、常用字符实体
    多播、组播、广播优缺点分析
    多播、组播、广播优缺点分析
    多播、组播、广播优缺点分析
    [转载]Web前端和后端之区分,以及面临的挑战【转】
    [转载]Web前端和后端之区分,以及面临的挑战【转】
  • 原文地址:https://www.cnblogs.com/Jordandan/p/4819213.html
Copyright © 2011-2022 走看看