zoukankan      html  css  js  c++  java
  • uilabel 自适应

    有时一个UILable的text内容是变化的,而且差异有很大,  

    1. 需求上要求UILabel的大小高宽能够自适应text的内容。代码例子:   
    2. myLable=[[UILabel alloc] initWithFrame:CGRectMake(0, 23, 175, 33)];   
    3. [myLable setFont:[UIFont fontWithName:@"Helvetica" size:10.0]];   
    4. [myLable setNumberOfLines:0];   
    5. [myLable setBackgroundColor:[UIColor clearColor]];   
    6. [myAdView addSubview:myLable];   
    7. UIFont *font = [UIFont fontWithName:@"Helvetica" size:10.0];   
    8. CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(175.0f, 2000.0f)   
    9.                                           lineBreakMode:UILineBreakModeWordWrap];   
    10. CGRect rect=myLable.frame;   
    11. rect.size=size;   
    12. [myLable setFrame:rect];   
    13. [myLable setText:text];  
    14.   
    15. 核心的是  
    16. CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(175.0f, 2000.0f)   
    17.                     lineBreakMode:UILineBreakModeWordWrap];  
    18. 来预算text显示时宽高。  
    19. 其中font是显示的字体,constrainedToSize是最大可接受的字符串宽高(例子中是宽175,高2000)  
    20. lineBreakMode换行类型(UILineBreakModeWordWrap指的单词边界换行)  

    sizeWithFont:constrainedToSize:lineBreakMode:

    Returns the size of the string if it were rendered with the specified constraints.

    - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
    Parameters
    font

    The font to use for computing the string size.

    size

    The maximum acceptable size for the string. This value is used to calculate where line breaks and wrapping would occur.

    lineBreakMode

    The line break options for computing the size of the string. For a list of possible values, see NSLineBreakMode.

    Return Value

    The width and height of the resulting string’s bounding box. These values may be rounded up to the nearest whole number.

    Discussion

    You can use this method to obtain the layout metrics you need to draw a string in your user interface. This method does not actually draw the string or alter the receiver’s text in any way.

    This method computes the metrics needed to draw the specified string. This method lays out the receiver’s text and attempts to make it fit the specified size using the specified font and line break options. During layout, the method may break the text onto multiple lines to make it fit better. If the receiver’s text does not completely fit in the specified size, it lays out as much of the text as possible and truncates it (for layout purposes only) according to the specified line break mode. It then returns the size of the resulting truncated string. If the height specified in the size parameter is less than a single line of text, this method may return a height value that is bigger than the one specified.

    Availability
    • Available in iOS 2.0 and later.
    Declared In
    UIStringDrawing.h
  • 相关阅读:
    汇编入门——使用DOSBox写一个HelloWorld以及相关软件安装
    HCNA-链路聚合(手工模式)
    逆向工程-真码保存在系统文件破解QQ游戏对对碰助手
    逆向工程-获得IPsearch的注册码
    遇见tongtong的思绪
    rhel7--06-预习--磁盘分区命令
    rhel7--05--第三章管道符与重定向符
    rhel7--01--安装
    虚拟机Centos8,没有网络,wired图标消失
    kali是靶体,内置工具可就地取材------网络安全法要天天供奉
  • 原文地址:https://www.cnblogs.com/mohe/p/3586568.html
Copyright © 2011-2022 走看看