UILabel范例实现代码如下

#import "TWO_ViewController.h"

#define SCREEN_Width [[UIScreen mainScreen] bounds].size.width

@interface TWO_ViewController ()

@end

@implementation TWO_ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view setBackgroundColor:[UIColor blackColor]];

    UIView *headerView = [[UIView alloc] init];
    UIImageView *image1 = [[UIImageView alloc] initWithFrame:CGRectMake(15, 15, SCREEN_Width - 40, 20)];
    image1.backgroundColor = [UIColor redColor];

    UILabel *ddlabel = [[UILabel alloc] init];
    [ddlabel setText:@"根据文字 高度进行适应根据文字高度 进行自适应根据文适应 根据文字高度进行自适应根据文自适应根据文字高度进行自适应根据文字高度进行自适应根据文字高度进行自适应根据文字高度进行自适应"];
    ddlabel.numberOfLines = 4;
    ddlabel.font = [UIFont systemFontOfSize:24];

    CGRect rect = [ddlabel.text boundingRectWithSize:CGSizeMake(self.view.frame.size.width - 20, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: ddlabel.font} context:nil];

    ddlabel.frame = CGRectMake(20, CGRectGetMaxY(image1.frame),SCREEN_Width - 40,rect.size.height);

    [self setLineSpacing:20 label:ddlabel];

    //[ddlabel sizeToFit];

    UIImageView *image2 = [[UIImageView alloc] initWithFrame:CGRectMake(15, CGRectGetMaxY(ddlabel.frame), SCREEN_Width - 40, 20)];
    image2.backgroundColor = [UIColor blueColor];

    headerView.frame = CGRectMake(0, 64, SCREEN_Width, CGRectGetMaxY(image2.frame)+20);
    NSLog(@"test height = %f", ddlabel.frame.size.height);
    headerView.backgroundColor = [UIColor whiteColor];
    [headerView addSubview:image1];
    [headerView addSubview:ddlabel];
    [headerView addSubview:image2];
    [self.view addSubview:headerView];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)setLineSpacing:(CGFloat)spacing label:(UILabel *)label
{
    if(!label.text.length) return;
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:label.text];
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    [paragraphStyle setLineSpacing:spacing];
    [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [label.text length])];
    [label setAttributedText:attributedString];
    label.lineBreakMode = NSLineBreakByTruncatingTail;
    [label sizeToFit];

    //[attributeString setAttributes:@{NSForegroundColorAttributeName:NF_Color_C19,NSFontAttributeName:[UIFont systemFontOfSize:Near_Final_Font_T9]} range:NSMakeRange(i, 1)];
}

@end
时间: 2024-11-03 21:13:19

UILabel范例实现代码如下的相关文章

C++演示在不同的范围内不冲突使用同名变量的范例的代码

把做工程过程中经常用的内容段珍藏起来,下边资料是关于C++演示在不同的范围内不冲突使用同名变量的范例的内容. #include <iostream> using std::cout; using std::endl; { public: }; { } { return x; } int main() { abc a; cout << "Scope within class abc: x = " << a.x << "nScope

python threading超线程使用简单范例的代码

在工作过程中中,将内容过程中经常用的内容片段珍藏起来,下面内容段是关于python threading超线程使用简单范例的内容,希望能对小伙伴们有较大帮助. # encoding: UTF-8 import threading # 方法1:将要执行的方法作为参数传给Thread的构造方法 def func(): print 'func() passed to Thread' t = threading.Thread(target=func) t.start() # 方法2:从Thread继承,并

C# foreach语句遍历集合类型演示范例的代码

下面资料是关于C# foreach语句遍历集合类型演示范例的内容,希望能对各位朋友有些用处. using System; using System.Collections; public class Tokens: IEnumerable { private string[] elements; Tokens(string source, char[] delimiters) { elements = source.Split(delimiters); } { return new TokenE

python多线程模块thread使用范例的代码

下边内容是关于python多线程模块thread使用范例的内容,希望能对小伙伴们也有用处. #!/usr/bin/python import threadimport time # Define a function for the threaddef print_time( threadName, delay): count = 0 while count < 5: time.sleep(delay) count += 1 print "%s: %s" % ( threadNa

带错误处理的python socket server服务范例的代码

下面的内容段是关于带错误处理的python socket server服务范例的内容,应该是对码农们有用途. import socket, traceback host = '' port = 51423 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((host, port)) s.listen(1) whil

30个php操作redis常用方法代码例子

redis的操作很多的,以前看到一个比较全的博客,但是现在找不到了.查个东西搜半天,下面整理一下php处理redis的例子,个人觉得常用一些例子.下面的例子都是基于php-redis这个扩展的. 1,connect 描述:实例连接到一个Redis. 参数:host: string,port: int 返回值:BOOL 成功返回:TRUE;失败返回:FALSE 示例: 复制代码 代码如下: <?php $redis = new redis(); $result = $redis->connect

30 个 php 操作 redis 常用方法代码例子

这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类型. list 类型和 set 类型的数据 , 需要的朋友可以参考下redis 的操作很多的,以前看到一个比较全的博客,但是现在找不到了.查个东西搜半天,下面整理一下php 处理 redis 的例子,个人觉得常用一些例子.下面的例子都是基于 php-redis 这个扩展的.1 , connect描述:实例连接到一个 Redis.参数: host: string

运用Runtime全局修改UILabel的默认字体

今天同事项目遇到一个问题,要修改所有UILabel的字体,我查了以下资料,推荐使用runtime机制替换掉UILabel的初始化方法,对label的字体进行默认设置.主要替换以下三个方法initWithFrame.init和xib用到的awakeFromNib,创建UILabel的类别代码如下: .h #import <UIKit/UIKit.h> @interface UILabel (LabelDefaultFont) @end .m #import "UILabel+Label

让UILabel的文字顶部对齐

默认UILabel是垂直居中对齐的,如果你的UILabel高度有多行,当内容少的时候,会自动垂直居中. 如下图所示(图片来自stackoverflow): 比较郁闷的是,UILabel并不提供设置其垂直对齐方式的选项.所以如果你想让你的文字顶部对齐,那么就需要自己想办法了. stackoverflow.com 上提供了几种方法来达到顶部对齐的效果. 方法一 在显示文字时,首先计算显示当前的文字需要多宽和多高,然后将对应的UILabel的大小改变成对应的宽度和高度.此方法的相示意图如下: 在显示文