zoukankan      html  css  js  c++  java
  • IOS7中自动计算label的宽度和高度的方法

     1 #import "ViewController.h"
     2 
     3 @implementation ViewController
     4 
     5 - (void)viewDidLoad {
     6     [super viewDidLoad];
     7  
     8     //根据固定的宽度计算 计算label的高度
     9     [self sizeToLabelHeight];
    10     
    11     //根据固定的高度 计算label的宽度
    12     [self sizeToLabelWidth];
    13     
    14 }
    15 
    16 /**
    17  *  自动计算label的宽度  前提高度固定
    18  *
    19  */
    20 - (void)sizeToLabelWidth
    21 {
    22     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    23     label.textColor = [UIColor whiteColor];
    24     label.font = [UIFont systemFontOfSize:13];
    25     label.numberOfLines = 0; //这个属性 一定要设置为0   0表示自动换行   默认是1 不换行
    26     label.backgroundColor = [UIColor blackColor];
    27     label.textAlignment = NSTextAlignmentLeft;
    28     NSString *str = @"fsdfsfnksdfjsdkhfjksdhfjdolfsdfsfnksdfjsdkhfjksdhfjsdkhfjksdhfjdojdol";
    29     
    30     
    31     //第一种方式
    32     //    CGSize size = [str sizeWithFont:label.font constrainedToSize: CGSizeMake(MAXFLOAT,label.frame.size.height) lineBreakMode:NSLineBreakByWordWrapping];
    33     
    34     //第二种方式
    35     
    36     NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    37     attrs[NSFontAttributeName] = [UIFont systemFontOfSize:13];
    38     
    39     CGSize size =  [str boundingRectWithSize:CGSizeMake( MAXFLOAT,label.frame.size.height) options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
    40     
    41     label.frame = CGRectMake(5, 0, size.width, 100);
    42     label.text = str;
    43     
    44     [self.view addSubview:label];
    45 }
    46 
    47 
    48 /**
    49  *  自动计算label的高度  前提 :宽度固定
    50  */
    51 - (void)sizeToLabelHeight
    52 {
    53 
    54     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    55     label.textColor = [UIColor whiteColor];
    56     label.font = [UIFont systemFontOfSize:13];
    57     label.numberOfLines = 0;//这个属性 一定要设置为0   0表示自动换行   默认是1 不换行
    58     label.backgroundColor = [UIColor blackColor];
    59     label.textAlignment = NSTextAlignmentLeft;
    60     
    61     NSString *str = @"fsdfsfnksdfjsdkhfjksdhfjdolfsdfsfnksdfjsdkhfjksdhfjsdkhfjksdhfjdojdol";
    62     
    63     //第一种方式
    64     //    CGSize size = [str sizeWithFont:label.font constrainedToSize: CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];
    65     
    66     //第二种方式
    67     NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    68     attrs[NSFontAttributeName] = [UIFont systemFontOfSize:13];
    69     
    70     CGSize size =  [str boundingRectWithSize:CGSizeMake(label.frame.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
    71     
    72     label.frame = CGRectMake(100, 100, 100, size.height);
    73     label.text = str;
    74     
    75     [self.view addSubview:label];
    76 }
    77 
    78 
    79 @end
  • 相关阅读:
    oracle表分区管理partition
    winfrom 界面编辑之疑难杂症
    resx文件引用
    mysql 数据库名含“-”
    KNN算法之图像处理二
    KNN算法之图像处理一
    DCOM初步窥探二
    dcom初步窥探一
    .net组件和com组件&托管代码和非托管代码
    c# apache服务器请求得到数据(初级)
  • 原文地址:https://www.cnblogs.com/syios/p/4713453.html
Copyright © 2011-2022 走看看