iOS动态计算Label的宽高

1.根据文字计算Label的宽度

1 +(CGFloat)widthOfString:(NSString *)string font:(UIFont *)font height:(CGFloat)height
2 {
3     NSDictionary * dict=[NSDictionary dictionaryWithObject: font forKey:NSFontAttributeName];
4     CGRect rect=[string boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, height) options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil];
5     return rect.size.width;
6 }

2.根据文字计算Label的高度

2.1方法一:sizeThatFits

例如:CGSize size = [toolLabel sizeThatFits:CGSizeMake([UIScreen mainScreen].bounds.size.width, MAXFLOAT)];

得到的size.height就是Label的高度

2.2方法二:

+(CGFloat)heightOfString:(NSString *)string font:(UIFont *)font width:(CGFloat)width
{
    CGRect bounds;
    NSDictionary * parameterDict=[NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName];
    bounds=[string boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesFontLeading|NSStringDrawingUsesLineFragmentOrigin attributes:parameterDict context:nil];
    return bounds.size.height;
}

时间: 2024-08-12 09:32:58

iOS动态计算Label的宽高的相关文章

动态设置ImageView的宽高以及位置

如何动态设置ImageView的宽高以及位置 package com.pic; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; public class PicTest extends Activity { private final

iOS 动态计算行高,宽等

UILabel有两个计算文字大小的方法: 1.针对对富文本计算NSAttributedString - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary*)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11,

iOS 动态计算文本内容的高度

关于ios 下动态计算文本内容的高度,经过查阅和网上搜素,现在看到的有以下几种方法: 1. //  获取字符串的大小  ios6 - (CGSize)getStringRect_:(NSString*)aString { CGSize size; UIFont *nameFont=[UIFont fontWithName:@"Helvetica" size:13]; size=[aString sizeWithFont:nameFont constrainedToSize:CGSize

GridView动态设置Item的宽高 第一个Item不显示的问题

在viewpaper中添加了一个Gridview,每个viewpaper要正好铺满显示3X2个,由于girdview是纵向可扩展的,所以我需要动态设置Gridview中item的高度,来确认铺满. 遇到的问题:Gridview中第一个item不显示 动态设置Item的高度只需要在adapter的getView方法中 使用parent的宽高进行重新计算就行了 废话不多说,直接上代码 <pre name="code" class="java">@Overri

label 自适应宽 高

//初始化label    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];    //设置自动行数与字符换行    [label setNumberOfLines:0];    // 测试字串    NSString *str = @"\n  一别之后 两地相悬 只说三四月 谁知五六年 七玄琴无心谈 八行书无可传 九连环从中断 十里长亭望眼欲穿 百思想 千系念 万般无奈把郎怨  \n  万言千语说不完 百

动态获取手机屏幕宽高及动态设置控件宽高

1.获取手机屏幕宽高: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth = dm.widthPixels; int screenHeight = dm.heightPixels; 22.根据屏幕宽度为控件设置动态设置宽高: imageView.setImageResource(R.drawable.newscar); L

动态计算Label高度

//1.设置该label的numberOfLines为0 self.titleLabel.numberOfLines = 0; //2.字体的设置要与之前相同 NSDictionary * attribute = @{NSFontAttributeName:[UIFont systemFontOfSize:17]}; //3.将size的高度设为最大值 CGSize size = CGSizeMake(355, CGFLOAT_MAX); //4.将label的高度设为动态计算出的size的高度

iframe跨域动态设置主窗口宽高

Q:在A项目的a页面嵌入一个iframe,src是B项目的b页面,怎样让a页面的高度跟b页面的高度一样? A:解决跨域方案:增加一个A项目的c页面. 操作步骤: 一,a页面的iframe设置: 获取到当前域名,作为参数设置到src上 1 <iframe id={idname} title=" " scrolling="no" src={`${iframeUrl}?zeus=${locationOrigin}`} > 二,b页面页脚增加以下代码:通过loc

iOS动态计算UIScrollView的contentSize示例(页面由Label组成)

1 #import "ViewController.h" 2 3 @interface ViewController () 4 { 5 UIScrollView *_scrollView; 6 } 7 //数据源 8 @property (nonatomic,strong)NSArray *dataArray; 9 10 @end 11 12 @implementation ViewController 13 14 - (void)viewDidLoad { 15 [super vie