zoukankan      html  css  js  c++  java
  • UIIabel自适配高度

    可以选择写一个继承自NSString的Category。然后添加一个方法:

    - (CGSize)sizeWithFont:(UIFont *)font andSize:(CGSize)cSize;

    方法里的实现如下:

    - (CGSize)sizeWithFont:(UIFont *)font andSize:(CGSize)cSize{

        CGSize size=CGSizeZero;

    #ifdef __IPHONE_7_0

        if (IOS7) {                    //  #define  IOS7   [[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0

            NSDictionary* attributes = [NSDictionary dictionaryWithObjectsAndKeys: font, NSFontAttributeName, nil];

            CGRect rect = [self boundingRectWithSize:cSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil];

            size = rect.size;

        }else{

            size = [self sizeWithFont:font constrainedToSize:cSize];

        }

    #else

        size = [self sizeWithFont:font constrainedToSize:cSize];

    #endif

        return size;

    }

     

    最后,在需要用到的类里,添加 #import "NSString+SizeFont.h" 引用,

    最最后使用:

    eg:   UILable *lblContent = [[UILabel alloc]init];

        lblContent.text = strContent;

    CGFloat height = [strContent sizeWithFont:[UIFont systemFontOfSize:18.0f] andSize:CGSizeMake(SCREEN_WIDTH-30, MAXFLOAT)].height;     //#define SCREEN_WIDTH   [[UIScreen mainScreen] bounds].size.width

    这个height就是lblContent的变化高度。最后把lblContent的frame设置一下就行了。

    lblContent.frame = (CGRect){lblContent.frame.origin,SCREEN_WIDTH-30,height};

    不出意外应该就OK了。嘿嘿~~

  • 相关阅读:
    负载平衡问题
    [SHOI2008]堵塞的交通traffic
    Bzoj3626 [LNOI2014]LCA
    [TJOI2015]旅游
    [SCOI2016]美味
    [AH/HNOI2017]单旋
    Luogu3613 睡觉困难综合征
    [SCOI2007]降雨量
    [SCOI2005]王室联邦
    HAOI2011 problem a
  • 原文地址:https://www.cnblogs.com/xumei/p/4514533.html
Copyright © 2011-2022 走看看