详解UILabel的adjustsFontSizeToFitWidth值

UILabel有一个属性值,叫adjustsFontSizeToFitWidth,看着名字就知道,他是用来让文字自动适应UILabel宽度的。

先看看显示效果:

测试用源码:

//
//  RootViewController.m
//  Letters
//
//  Created by YouXianMing on 14-9-14.
//  Copyright (c) 2014年 YouXianMing. All rights reserved.
//

#import "RootViewController.h"

@interface RootViewController ()

@end

@implementation RootViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    {
        UILabel *label                  = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 250, 30)];
        label.layer.borderWidth         = 1.f;
        CGPoint point                   = self.view.center;
        point.y                         = 70;
        label.center                    = point;
        label.text                      = @"YouXianMing NoZuoNoDie";
        label.textAlignment             = NSTextAlignmentCenter;
        label.adjustsFontSizeToFitWidth = YES;
        label.baselineAdjustment        = UIBaselineAdjustmentAlignCenters;
        [self.view addSubview:label];
    }

    {
        UILabel *label                  = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 30)];
        label.layer.borderWidth         = 1.f;
        CGPoint point                   = self.view.center;
        point.y                         = 120;
        label.center                    = point;
        label.text                      = @"YouXianMing NoZuoNoDie";
        label.textAlignment             = NSTextAlignmentCenter;
        label.adjustsFontSizeToFitWidth = YES;
        label.baselineAdjustment        = UIBaselineAdjustmentAlignCenters;
        [self.view addSubview:label];
    }

    {
        UILabel *label                  = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 150, 30)];
        label.layer.borderWidth         = 1.f;
        CGPoint point                   = self.view.center;
        point.y                         = 170;
        label.center                    = point;
        label.text                      = @"YouXianMing NoZuoNoDie";
        label.textAlignment             = NSTextAlignmentCenter;
        label.adjustsFontSizeToFitWidth = YES;
        label.baselineAdjustment        = UIBaselineAdjustmentAlignCenters;
        [self.view addSubview:label];
    }

    {
        UILabel *label                  = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 30)];
        label.layer.borderWidth         = 1.f;
        CGPoint point                   = self.view.center;
        point.y                         = 220;
        label.center                    = point;
        label.text                      = @"YouXianMing NoZuoNoDie";
        label.textAlignment             = NSTextAlignmentCenter;
        label.adjustsFontSizeToFitWidth = YES;
        label.baselineAdjustment        = UIBaselineAdjustmentAlignCenters;
        [self.view addSubview:label];
    }
}

@end

以下是核心代码:

时间: 2024-08-04 21:48:09

详解UILabel的adjustsFontSizeToFitWidth值的相关文章

翻译「C++ Rvalue References Explained」C++右值引用详解 Part3:右值引用

本文为第三部分,目录请参阅概述部分:http://www.cnblogs.com/harrywong/p/4220233.html. 右值引用 如果x是任意类型,那么x&&则被称作一个对x的右值引用(rvalue reference).为了更好区分,原来的引用x&现在也被称作左值引用(lvalue reference). 一个右值引用是一种同原始引用x&的行为非常类似的类型,但是有一些特例.最重要的一个就是当面临方法重载决议的时候,左值倾向于旧式的左值引用,而右值偏向于新的

jQuery$.each循环遍历详解,各种取值对比,$.each遍历数组、对象、Dom元素、二维数组、双层循坏、类json数据等等

jQuery 遍历函数包括了用于筛选.查找和串联元素的方法. 函数 描述 .add() 将元素添加到匹配元素的集合中. .andSelf() 把堆栈中之前的元素集添加到当前集合中. .children() 获得匹配元素集合中每个元素的所有子元素. .closest() 从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素. .contents() 获得匹配元素集合中每个元素的子元素,包括文本和注释节点. .each() 对 jQuery 对象进行迭代,为每个匹配元素执行函数. .end(

翻译「C++ Rvalue References Explained」C++右值引用详解 Part5:右值引用就是右值吗?

本文为第五部分,目录请参阅概述部分:http://www.cnblogs.com/harrywong/p/cpp-rvalue-references-explained-introduction.html. 右值引用就是右值吗? 同之前一样,给出一个X类,让我们可以重载它的拷贝构造函数和拷贝赋值操作符来实现move语义.现在做如下考虑: void foo(X&& x) { X anotherX = x; // ... } 一个有趣的问题就是,在foo函数内,哪一个x的拷贝构造函数重载将会被

刁肥宅详解中缀表达式求值问题:C++实现顺序/链栈解决

1. 表达式的种类 如何将表达式翻译成能够正确求值的指令序列,是语言处理程序要解决的基本问题,作为栈的应用事例,下面介绍表达式的求值过程. 任何一个表达式都是由操作数(亦称运算对象).操作符(亦称运算符)和分界符组成的.通常,算术表达式有3种表示: ①中缀(infix)表示:<操作数><操作符><操作数>,如A+B. ②前缀(prefix)表示: <操作符><操作数><操作数>,如+AB. ③后缀(postfix)表示: <操作

详解权值线段树

详解权值线段树 本篇随笔详细讲解一下算法竞赛中的一种数据结构--权值线段树. 前置知识 在讲解权值线段树之前,我们首先要明确:权值线段树属于一种线段树,它的本质仍然是线段树.所以在学习权值线段树之前,如果还对普通线段树并没有一个深刻的了解的话,请先移步这篇博客来学习简单线段树. 简单线段树知识点详解 以及,权值线段树的本质是线段树维护桶.这个桶到底是什么呢?如果读者对桶的概念和应用比较模糊的话,请移步这篇博客来学习桶的基本概念和应用: 桶的基本概念和应用 权值线段树的概念 那么,在了解了所有的前

【转载】3D/2D中的D3DXMatrixPerspectiveFovLH和D3DXMatrixOrthoLH投影函数详解

原文:3D/2D中的D3DXMatrixPerspectiveFovLH和D3DXMatrixOrthoLH投影函数详解 3D中z值会影响屏幕坐标系到世界坐标系之间的转换,2D中Z值不会产生影响(而只是屏幕宽高比会产生影响,z值只对深度剔除产生影响).所以U3D中如果用2D摄像机那么屏幕坐标和世界坐标之间的转换需要用指定的2D摄像机才行,如果用主3D摄像机那么UI转换会产生计算结果异常. 一.D3DXMatrixPerspectiveFovLH函数 作用:Builds a left-handed

Android View measure流程详解

Android View measure流程详解 Android中View绘制的流程包括:measure(测量)->layout(布局)->draw(绘制). 因为Android中每个View都占据了一块矩形的空间,当我们要在屏幕上显示这个矩形的View的时候 首先我们需要知道这个矩形的大小(宽和高)这就对应了View的measure流程. 有了View的宽和高,我们还需要知道View左上角的起点在哪里,右下角的终点在哪里,这就对应了View的layout流程. 当矩形的区域在屏幕上确定之后,

Kotlin——基础的函数/方法详解

对于Kotlin中的函数来说,和JavaScript或者Lua这些语言很像,它有着这些语言的特性.但是也与这些语言就着许多不同之处.或许你更了解Java语言,然而对于Java语言来说,它不是不是闭包这个特性的.由于在这篇文章主要是讲解函数的基本使用,故而只会讲解到函数的定义.函数的返回值.函数的参数等.剩下的部分我会在这个系列的高级篇会给大家奉上. 目录 一.函数的声明及基本使用 在Kotlin中函数的声明,同JavaScript相似. 1.1.函数的声明 Kotlin中的函数声明关键字为:fu

MySQL状态变量详解

MySQL状态变量详解 mysql的状态变量(status variables)记录的mysql服务器的运行状态信息.查看语法如下: SHOW [GLOBAL | SESSION] STATUS; SHOW STATUS命令会显示每个服务器变量的名字和值,状态变量是只读的.我们可以在MySQL客户端下运行SHOW STATUS或者在命令行运用mysqladmin extended-status来查看这 些变量.如果使用SQL命令,可以使用LIKE或者WHERE来限制结果.LIKE可以对变量名做标