国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

UI之UILabel--屬性及用法

2019-11-14 19:10:13
字體:
來源:轉載
供稿:網友
  1 // 初始化Label,并設置label的位置及大小  2     UILabel* label = [[UILabel alloc]initWithFrame:CGRectMake(50, 100, 100, 40)];  3       4     // 設置label位置及大小  5     label.frame = CGRectMake(50, 100, 100, 40);

// enabled屬性如果設置為No,則文字顏色會變暗,表明其是不可用的,默認值為YES

    label.enabled = YES;

 6

  7     // 設置背景顏色  8     label.backgroundColor = [UIColor yellowColor];  9      10     // 清除背景顏色 11     label.backgroundColor = [UIColor clearColor]; 12      13     // 設置高亮 14     label.highlighted = YES; 15      16     // 設置隱藏 17     label.hidden = NO; 18      19      20     // 設置文本陰影 21     label.shadowColor = [UIColor grayColor]; 22      23     // 設置陰影大小 24     label.shadowOffset = CGSizeMake(2.0, 2.0); 25      26     // 設置圓角 27     label.layer.cornerRadius = 10; 28      29     // 設置label的邊框粗細與顏色,設置前要在相應文件中加入#import<QuartzCore/QuartzCore.h> 30     // 設置邊框寬度 31     label.layer.borderWidth = 1; 32      33     // 設置邊框顏色 34     label.layer.borderColor = [UIColor redColor].CGColor; 35      36     // 設置標簽 37     label.tag = 1; 38      39     // 設置文本內容 40     label.text = @"abcd"; 41      42     // 把字符串的值賦值給label 43     NSString* textLabel = @"abce"; 44     label.text = textLabel; 45      46     // 設置文本類型及文本大小 47     label.font = [UIFont fontWithName:@"Arial" size:30]; 48     // [label setFont:[UIFont fontWithName:@"Arial" size:30]]; 49      50     // 采用系統默認文字類型設置大小 51     label.font = [UIFont systemFontOfSize:12]; 52     // [label setFont:[UIFont systemFontOfSize:12]]; 53      54     // 設置文本顏色 55     label.textColor = [UIColor redColor]; 56     // [label setTextColor:[UIColor lightGrayColor]]; 57      58     // 設置文本對齊方式 59     label.textAlignment = NSTextAlignmentLeft; 60     // [label setTextAlignment:NSTextAlignmentLeft]; 61      62     /* 其中textAlignment有三種設置方式:NSTextAlignmentLeft為向左對齊,NSTextAlignmentCenter為居中對齊,NSTextAlignmentRight為向右對齊 63      如果有一些文章介紹時用的是UITextAlignmentCenter/UITextAlignmentLeft/UITextAlignmentRight,那是iOS6以前的用法,iOS6的最新用法已改 */ 64      65     /* 當文本內容很多,label無法全部顯示時label會將文本內容以省略號的方式代替, 66      下面說一下label文本省略方式的設置 */ 67     // 其中lineBreakMode為可選值 68     [label setLineBreakMode:NSLineBreakByCharWrapping]; 69     // label.lineBreakMode = NSLineBreakByCharWrapping; 70     //    linBreakMode enum{ 71     //        NSLineBreakByWordWrapping = 0,//保留整個單詞,以空格為邊界 72     //        NSLineBreakByCharWrapping,//保留整個字符 73     //        NSLineBreakByClipping, //以邊界為止 74     //        NSLineBreakByTruncatingHead,//省略開頭,以省略號代替 75     //        NSLineBreakByTruncatingTail,//省略結尾,以省略號代替 76     //        NSLineBreakByTruncatingMiddle//省略中間,以省略號代替 77     //    } 78      79     // 設置文本行數 80     label.numberOfLines = 1; // 不設置時系統會默認行數為1; 81      82     /* 當需要設置的行數為不限數量時,可以用numberOfLines = 0;實現,會自動換行 83      當label大小使用sizeToFit方法時,調整大小時會考慮到該屬性中存儲的值。 84      例如:如果此屬性設置為3,sizeTOFit方法會調整label使它大到足以顯示三行文本 */ 85     [label sizeToFit]; 86      87     // 實現文本多行顯示 88     label.lineBreakMode = NSLineBreakByCharWrapping; 89     label.numberOfLines = 0; 90      91     // 文本自動根據label大小自動調整字體尺寸 92     label.numberOfLines = 1; 93     label.adjustsFontSizeToFitWidth = YES; 94     /* adjustFontSizeToFitWidth方法可實現文本自動根據label大小自動調整字體尺寸,直到文本的大小達到了自己設置的label文本尺寸最大、最小值與字符串的最大最小值,要是用這個方法還有一個很大的限制就是只有在numberOfLines設置為1時才能用 */ 95      96     /* 如果行數是超過了1行,要實現自動調整字體大小功能,就沒有可以自適應的系統方法可以使用,只有自己用代碼實現,在設計時因為要考慮到手機屏幕的實際大小有限,如果字體太小會影響用戶體驗,所以要設置一個最小字號的判斷,小于最小字號就要用到縮略顯示,下面的代碼中主要是用到: 97       98      CGSize size = [label sizeWithFont:font constrainedToSize:CGSizeMake(100, 180) lineBreakMode:NSLineBreakByCharWrapping]; 99      100      來得到字體在某一字號下的高度,判斷與label高度是否一致,其中text是輸入label的文本內容,sizWithFont設置字體,constrainedToSize設置約束文本的矩形大小參數,其中寬度要和label一致,高度設置要足夠高,要比label高很多,否則會出現文本顯示不全的問題,lineBreakMode的作用上文有講過。如果算出的高度超出了label高度,就把字號以循環的方式減小直到高度符合就跳出循環。101      102      float maxHeight =50;//設置最大高度103      float minFontSize =9;104      float height;105      int fontSize = 31;//設置最大字號106      NSString *text = @"輸入文本內容";107      do {108      fontSize = fontSize - 1;109      UIFont *font =[UIFont fontWithName:@"Arial" size:fontSize];110      //寬度與label的寬度一樣,高度應高于label高度111      CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(100, 180)] lineBreakMode:NSLineBreakByCharWrapping];112      height = size.height;113      NSLog(@"height=%f,fontSize=%d,text=%@",height,fontSize,text);114      } while (height > maxHeight&&fontSize>minFontSize);115      116      UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 50, 100, 50)];117      label.text =text;118      if (fontSize ==9) {//判斷字體是否小于最小字號,小于最小字號時就使用系統默認的縮略顯示119      label.font = [UIFont fontWithName:@"Arial" size:15];120      }121      else{122      label.font = [UIFont fontWithName:@"Arial" size:fontSize];123      label.lineBreakMode = NSLineBreakByCharWrapping;//實現文字多行顯示124      label.numberOfLines = 0;125      }126      [self.view addSubview:label];127      */128     129     // 設置背景圖片130     /* 方法一、設置背景圖可以把一張大小與label一樣的圖放在label的后面一層,131      然后把label的背景設置為透明,這樣實現label有背景132      133      UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(50, 50, 200, 400)];134      UIImageView *imageView =[[UIImageView alloc]init];135      imageView.frame =CGRectMake(50, 50, 200, 400);136      UIImage *image=[UIImage imageNamed:@"1.jpg"];137      imageView.image =image;//imageView會根據自身大小改變添加的圖片的大小所以不需要額外設置image138      label.backgroundColor = [UIColor clearColor];139      label.text =@"hello world";140      label.font = [UIFont systemFontOfSize:30];141      label.textColor = [UIColor yellowColor];142      [self.view addSubview:imageView];//添加的順序不能錯,否則圖片會覆蓋label143      [self.view addSubview:label];  */144     145     /* 方法二、用UIColor設置圖片,然后把UIColor作為背景顏色,就可以實現label設置背景圖146      147      UIColor * color = [UIColor colorWithPatternImage:image];//image為需要添加的背景圖148      UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(50, 50, 100, 200)];149      [label setBackgroundColor:color];150      [self.view addSubview:label];151      152      但這個方法有一個嚴重的缺陷,就是當背景圖的尺寸與label大小不一致時,會出現背景圖被部分截取或者平鋪重復的情況,153      所以更完善的方法是要先修改好背景圖的大小與label大小一致再設置背景顏色。可以用下面的函數設置image尺寸154      155      -(UIImage *)scaleImage:(UIImage *)img ToSize:(CGSize)itemSize{156      UIImage *i;157      // 創建一個bitmap的context,并把它設置成為當前正在使用的context158      UIGraphicsBeginImageContext(itemSize);159      CGRect imageRect=CGRectMake(0, 0, itemSize.width, itemSize.height);160      // 繪制改變大小的圖片161      [img drawInRect:imageRect];162      // 從當前context中創建一個改變大小后的圖片163      i=UIGraphicsGetImageFromCurrentImageContext();164      // 使當前的context出堆棧165      UIGraphicsEndImageContext();166      // 返回新的改變大小后的圖片167      return i;168      }169      170      然后在主函數中調用即可171      172      CGSize size= CGSizeMake(100, 200);173      UIImage *image =[UIImage imageNamed:@"1.jpg"];174      UIImage *laterImage =[self scaleImage:image ToSize:size];175      UIColor * color = [UIColor colorWithPatternImage:laterImage];176      UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(50, 50, 100, 200)];177      [label setBackgroundColor:color];178      [self.view addSubview:label]; */179 180     //文本基線181     label.baselineAdjustment=UIBaselineAdjustmentNone;//文本最低端與label中線對齊182     label.baselineAdjustment=UIBaselineAdjustmentAlignBaselines;//文本最上端與中線對齊183     label.baselineAdjustment=UIBaselineAdjustmentAlignCenters; //文本中線與label中線對齊184     185     //自動收縮186     label.minimumScaleFactor=0.5;187 188     // 添加視圖189     [self.view addSubview:label];

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉鱼县| 香港 | 岳西县| 靖宇县| 鹿邑县| 无极县| 平湖市| 阿拉善盟| 桃园市| 泌阳县| 水富县| 博兴县| 岳普湖县| 忻城县| 林芝县| 山西省| 临江市| 绥棱县| 普宁市| 庆城县| 隆子县| 汉中市| 会理县| 田东县| 徐闻县| 揭阳市| 巴林左旗| 侯马市| 景洪市| 济阳县| 建昌县| 四川省| 恩施市| 凤庆县| 陕西省| 盐池县| 肃北| 道真| 古蔺县| 寿阳县| 扎赉特旗|