程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> UILabel類的用法以及實例化對象的各種屬性介紹

UILabel類的用法以及實例化對象的各種屬性介紹

編輯:C++入門知識

UILabel類的用法以及實例化對象的各種屬性介紹


在以前的xcode版本中,練習的時候都會選擇空模板,並在AppDelegate.m中的didFinishLaunchingWithOptions中書寫代碼實例化控件對象(比如標簽),然後最終用[self.window addSubview:對象]的方法顯示出來。


但xcode最新的幾個版本中,已經沒有空模板選項,而是單MVC模板,所以需要在ViewController.m的viewDidLoad中書寫代碼,並用[self.view addSubview:label1]來顯示控件。


以下是label標簽的屬性:

- (void)viewDidLoad {
    //初始化一個label1標簽對象,初始化有很多方法,最原始的就是init,此處用帶有frame的方法
    UILabel *label1=[[UILabel alloc]initWithFrame:CGRectMake(30, 30, 300, 30)];
    //設置內容
    label1.text=@"我是 label 123 hello world 你好嗎?在家嗎?";
    //設置文字顏色
    label1.textColor=[UIColor whiteColor];
    //設置標簽背景,clearColor是透明背景的意思
    label1.backgroundColor=[UIColor redColor];
    //設置文字對齊
    label1.textAlignment=NSTextAlignmentCenter;
    //設置字體,UIFont類有很多設置字體的方法,CMD+點擊可查看。
    label1.font=[UIFont boldSystemFontOfSize:23];
    //這個字體設置會覆蓋上面的設置,但字是否會傾斜加粗則需要看具體的字體
    label1.font=[UIFont italicSystemFontOfSize:23];
    //打印出所有系統字體,也是用得UIFont裡一個方法,可CMD+點擊查看
    NSArray *arr1=[UIFont familyNames];
    for (NSString *name in arr1) {
        NSLog(@"%@",name);
    }
    //一般可用,同時修改字體和字號的方法
    label1.font=[UIFont fontWithName:@"Georgia" size:40];
    //設置陰影顏色
    label1.shadowColor=[UIColor blackColor];
    //設置陰影偏移值,需要CGSizeMake值,第一個表示左右偏移,>0向右;第二個表示上下偏移,>0向下
    label1.shadowOffset=CGSizeMake(2, 5);
    //設置高亮,如果設置為YES,則下面的高亮顏色會替換原先的textColor,而如果設置為No,或者高亮沒開啟,則高亮顏色設置無效,還是顯示textColor值
    label1.highlighted=YES;
    label1.highlightedTextColor=[UIColor redColor];
    //根據標簽大小自動調整文字大小,如否不開啟,則多余的文字用...表示
    label1.adjustsFontSizeToFitWidth=YES;
    //文字與標簽的對齊,依次是文本頂端、中間、底端於標簽的中線對齊。可CMD+點擊以下任意一個值,發現這是一枚舉,默認值是UIBaselineAjustmentAlignBaselines
    //以下方法僅當只有一行文本時有效
    label1.baselineAdjustment=UIBaselineAdjustmentAlignBaselines;
    label1.baselineAdjustment=UIBaselineAdjustmentAlignCenters;
    label1.baselineAdjustment=UIBaselineAdjustmentNone;
    
    UILabel *label2=[[UILabel alloc]initWithFrame:CGRectMake(30, 80, 300, 80)];
    label2.text=@"hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world hello world ";
    //文字很多時,還是顯示1行,最後以...省略
    //設置顯示的行數,0是不限制多少行,但由於標簽高度一定,如果顯示不下,最終仍以...省略
    label2.numberOfLines=0;
    //設置換行和最後截斷/省略
    //NSLineBreakByWordWrapping-以單詞為單位換行,以單詞為單位截斷(即沒有...,顯示不了的直接截斷不顯示),默認,CMD+點擊發現也是一枚舉
    //NSLineBreakByCharWrapping-以字符為單位換行,以字符為單位截斷
    //NSLineBreakByClipping-以單詞為單位換行,以字符為單位截斷
    //NSLineBreakByTruncatingHead-以單位為單位換行,以字符為單位截斷,但最後一行的前面是...省略,如果是一行,則就在一行的開頭有...
    //NSLineBreakByTruncatingTail-以單位為單位換行,以字符為單位截斷,但最後一行的末尾是...省略,如果是一行,則就在一行的末尾有...
    //NSLineBreakByTruncatingMiddle-以單位為單位換行,以字符為單位截斷,但最後一行的中間是...省略,如果是一行,則就在一行的中間有...
    label2.lineBreakMode=NSLineBreakByTruncatingHead;
    
    //根據內容調整標簽大小,三部曲
    UILabel *label3=[[UILabel alloc]initWithFrame:CGRectZero];
    label3.text=@"標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3 標簽3";
    //1、計算內容大小,即獲得高和寬,其實寬一般都給定了,只是計算高,而高寬二位對象一般是一個CGSize
    CGSize size1=[label3.text sizeWithFont:label3.font constrainedToSize:CGSizeMake(300, 1000) lineBreakMode:NSLineBreakByCharWrapping];
    //2、設置顯示行數,即不限制函數
    label3.numberOfLines=0;
    //3、利用size1設置標簽的寬和高
    label3.frame=CGRectMake(30, 180, size1.width, size1.height);
    //把上面初始化的標簽label1、2、3增加到當前的view裡,一並顯示出來
    [self.view addSubview:label1];
    [self.view addSubview:label2];
    [self.view addSubview:label3];
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved