在以前的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. }