`
heack
  • 浏览: 1673 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

UILabel 正确获得height的方法

阅读更多
现在用的最多的方法是:
UILabel *label = [[UILabel alloc] initWithFrame:...];
label.text = NSLocalizedString(@"Some long text here...");
label.numberOfLines = 0;
CGSize maxSize = CGSizeMake(label.bounds.size.width, CGFLOAT_MAX);
CGSize textSize = [label.text sizeWithFont:label.font
                         constrainedToSize:maxSize];
label.frame = CGRectMake(10, 10, textSize.width, textSize.height);
而这是错误的。原因是:
如果未来label的可以配置其他行间距,自定义字体等等,那么此方法便会失效。
其实,ios已经UILabel可以支持不同的字体属性,比如大小,颜色。所以此方法已经不再是正确的了。
正确的方法应该是:
//UILabel height
CGSize maxSize = CGSizeMake(200.0f, CGFLOAT_MAX);
CGSize requiredSize = [label sizeThatFits:maxSize];
label.frame = CGRectMake(10, 10, size.width, size.height);
参考:
attributedText
The styled text displayed by the label.

@property(nonatomic,copy) NSAttributedString *attributedText
Discussion
This property is nil by default. Assigning a new value to this property also replaces the value of the text property with the same string data, albeit without any formatting information. In addition, assigning a new a value updates the values in the font, textColor, and other style-related properties so that they reflect the style information starting at location 0 in the attributed string.

Availability
Available in iOS 6.0 and later.
Declared In
UILabel.h


分享到:
评论

相关推荐

    swift-UIlabel根据文本字体获得label宽度;自适应宽高

    总之,通过Swift的`boundingRect(with:)`方法,我们可以精确地计算UILabel的宽度,结合适当的约束设置,可以实现UILabel的自适应宽高。这在创建动态内容或需要精确布局的场景中非常有用。同时,了解并合理运用这些...

    UILabel属性和方法大全

    UILabel 继承于 UIView 里的各种属性和方法使用

    UIlabel根据文本、字体获得label宽度;自适应宽高

    `UILabel`的宽度可以通过`boundingRect`方法来计算,这个方法返回一个矩形,该矩形能够完全容纳给定的文本和字体。以下是如何根据文本和字体获取`UILabel`宽度的代码示例: ```swift let text = "你的文本内容" let...

    UILabel 宽度和高度自适应的方法

    当我们需要让UILabel根据文本内容自动调整其宽度和高度以适应显示时,我们可以采用以下几种方法: 1. **高度自适应(AutoHeight)** - `numberOfLines` 属性:默认情况下,UILabel的`numberOfLines`为1,表示单行...

    UILabel、UILabel基本用法、UILabel详解

    ### UILabel基本用法与详解 ...以上介绍了`UILabel`的一些常见属性和方法,它们可以帮助开发者更好地利用`UILabel`来美化界面并实现更丰富的交互效果。希望这些知识点能对你在iOS开发中有所帮助。

    UILabel拓展属性

    一种常见的实现方式是自定义`UILabel`,重写`drawText(in:)`方法,使其按照顶端对齐绘制文本。另一种方法是利用`NSMutableParagraphStyle`的`alignment`属性,将其设置为`.justified`,再配合`lineBreakMode`为`....

    自定义uilabel

    5. **自定义扩展**:如果需要更高级的功能,如图文混排、自动换行、富文本处理等,可以考虑继承UILabel并重写其方法。例如,重写drawText(in:)方法,以自定义文本绘制逻辑。 在"UILabel-master"这个压缩包中,很...

    UILabel的删除线效果,简单实用

    3. **重写绘制方法**:为了在文本下方绘制删除线,我们需要重写`UILabel`的`drawText(in:)`方法。在这个方法中,我们将根据`hasDeleteLine`属性判断是否需要绘制删除线。在Swift中,代码可能如下: ```swift ...

    UILabel局部点击

    创建一个继承自`UILabel`的自定义类,并重写`hitTest:withEvent:`方法。这个方法返回的是视图层次结构中响应事件的视图。通过计算点击点相对于文本框的位置,我们可以确定点击的是哪个子字符串。 ```swift class ...

    UILabel+YH.m

    当前 UILabel 类为方法的实现类,针对声明类中对应的封装方法进行具体的相关方法的逻辑实现处理,最终将处理结果返回。

    iOS UIlabel 闪烁

    1. **利用异步绘制**:通过重写UILabel的`drawTextInRect:`方法,进行异步绘制,避免阻塞主线程。但是,这种方法需要开发者自己处理一些细节,如文本测量和布局,可能增加代码复杂性。 2. **减少更新频率**:如果...

    UILabel内容中某个文字添加点击事件

    接下来,在实现文件`UILabel+YBAttributeTextTapAction.m`中,我们需要实现这个Category的方法: ```objc #import "UILabel+YBAttributeTextTapAction.h" @implementation UILabel (YBAttributeTextTapAction) - ...

    ios-自定义内边距UILabel.zip

    总结一下,本例中的`ios-自定制内边距UILabel.zip`提供了自定义`UILabel`内边距的方法,通过继承和重写`UILabel`的相关方法,实现了文本的内边距功能。这有助于开发者在设计界面时拥有更多的自由度,能够根据设计...

    iOS文字绘制(继承UIControl简单封装类似UILabel的控件)

    CGRect textRect = CGRectMake((self.bounds.size.width - textSize.width) / 2.0f, (self.bounds.size.height - textSize.height) / 2.0f, textSize.width, textSize.height); [self.text drawInRect:textRect ...

    swift-iOS开发中实现UILabel滚动类似于跑马灯效果;

    let label = UILabel(frame: CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height)) label.text = text label.font = font label.textColor = textColor label.textAlignment = textAlignment ...

    UILabel多行显示

    可以利用`sizeThatFits`方法计算出适应文本的尺寸,然后更新布局。例如: ```swift let text = "这是从服务器获取的动态字符串..." label.text = text // 更新UILabel的尺寸 let size = label.sizeThatFits(CGSize...

    iOS_UILabel and UITextField

    1. **创建与初始化**:可以通过`init(frame:)`或`init(text: font: textColor:)`方法创建`UILabel`实例。 2. **设置文本**:通过`text`属性设置要显示的文本内容。 3. **字体与颜色**:使用`font`属性调整字体大小和...

    UILabel分类——自动调整处理文章格式显示

    当我们要在一个UILabel组件上显示指定文章格式和行间距 字体颜色或风格且高度不确定的文章时,只需要把该文件拉...把头文件导入,即可让UILabel组件调用分类方法。任可要求均可满足。并且,还可以求出文章的具体高度。

    iOS App开发中修改UILabel默认字体的方法

    在iOS应用开发中,修改UILabel默认字体通常有两种主要方法:一是使用`NSAttributedText`和`NSMutableAttributedText`,二是通过运行时(runtime)全局修改。这两种方法各有其适用场景和优缺点。 首先,我们来看第一...

    swift-iOS数字滚动UILabel

    在这种情况下,"swift-iOS数字滚动UILabel"是一个实用的解决方案,它能够优雅地呈现数字变化的过程,给用户带来更生动的交互体验。这个项目的核心是自定义了一个UILabel的子类,通过动画效果模拟数字滚动的过程。 ...

Global site tag (gtag.js) - Google Analytics