iOS 根据字符串数目,自定义Label等控件的高度

Posted 张玉宝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 根据字符串数目,自定义Label等控件的高度相关的知识,希望对你有一定的参考价值。

利用分类,NSString,增加一个方法。

 

技术分享
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface NSString (Height)

+ (CGSize)getRect:(NSString *)textStr andWidth:(CGSize)size andFont:(UIFont *)font;

@end
技术分享

 

 

技术分享
#import "NSString+Height.h"

@implementation NSString (Height)

+ (CGSize)getRect:(NSString *)textStr andWidth:(CGSize)size andFont:(UIFont *)font
{
    
    CGRect rect = [textStr boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:font} context:nil];
    
    return rect.size;
    
}

@end
技术分享

 

使用:

CGSize size = [NSString getRect:str andWidth:CGSizeMake(ios_SCREEN.size.width/2 - 10, CGFLOAT_MAX) andFont:[UIFont systemFontOfSize:14]];

 

其中:
str 是将要计算的字符串,
IOS_SCREEN.size.width/2 - 10 是宽度,
[UIFont systemFontOfSize:14]是设置字号
这些需要自己根据情况写;

以上是关于iOS 根据字符串数目,自定义Label等控件的高度的主要内容,如果未能解决你的问题,请参考以下文章

C# WinForm 用户控件的自定义事件问题

iOS-基础控件-视图控制器

我生成了一个换行的自定义Label控件,如何取得该行数啊??

Android自定义控件——IndicatorLayout

Swift 自定义分段控件 SegmentedControl

VB6 自定义控件透明问题