成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

iOS中UILabel如何設(shè)置居上對齊、居中對齊、居下對齊及文字置頂顯示

這篇文章主要為大家展示了“iOS中UILabel如何設(shè)置居上對齊、居中對齊、居下對齊及文字置頂顯示”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“iOS中UILabel如何設(shè)置居上對齊、居中對齊、居下對齊及文字置頂顯示”這篇文章吧。

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站建設(shè)、做網(wǎng)站與策劃設(shè)計,鹿泉網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:鹿泉等地區(qū)。鹿泉做網(wǎng)站價格咨詢:028-86922220

iOS中UILabel設(shè)置居上對齊、居中對齊、居下對齊

在iOS中默認(rèn)的UILabel中的文字在豎直方向上只能居中對齊,博主參考國外網(wǎng)站,從UILabel繼承了一個新類,實現(xiàn)了居上對齊,居中對齊,居下對齊。

具體如下:

// 
// myUILabel.h 
// 
// 
// Created by yexiaozi_007 on 3/4/13. 
// Copyright (c) 2013 yexiaozi_007. All rights reserved. 
// 
#import <UIKit/UIKit.h> 
typedef enum 
{ 
 VerticalAlignmentTop = 0, // default 
 VerticalAlignmentMiddle, 
 VerticalAlignmentBottom, 
} VerticalAlignment; 
@interface myUILabel : UILabel 
{ 
@private 
VerticalAlignment _verticalAlignment; 
} 
@property (nonatomic) VerticalAlignment verticalAlignment; 
@end
// 
// myUILabel.m 
// 
// 
// Created by yexiaozi_007 on 3/4/13. 
// Copyright (c) 2013 yexiaozi_007. All rights reserved. 
// 
#import "myUILabel.h" 
@implementation myUILabel 
@synthesize verticalAlignment = verticalAlignment_; 
 
- (id)initWithFrame:(CGRect)frame { 
 if (self = [super initWithFrame:frame]) { 
 self.verticalAlignment = VerticalAlignmentMiddle; 
 } 
 return self; 
} 
- (void)setVerticalAlignment:(VerticalAlignment)verticalAlignment { 
 verticalAlignment_ = verticalAlignment; 
 [self setNeedsDisplay]; 
} 
- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines { 
 CGRect textRect = [super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines]; 
 switch (self.verticalAlignment) { 
 case VerticalAlignmentTop: 
  textRect.origin.y = bounds.origin.y; 
  break; 
 case VerticalAlignmentBottom: 
  textRect.origin.y = bounds.origin.y + bounds.size.height - textRect.size.height; 
  break; 
 case VerticalAlignmentMiddle: 
  // Fall through. 
 default: 
  textRect.origin.y = bounds.origin.y + (bounds.size.height - textRect.size.height) / 2.0; 
 } 
 return textRect; 
} 
-(void)drawTextInRect:(CGRect)requestedRect { 
 CGRect actualRect = [self textRectForBounds:requestedRect limitedToNumberOfLines:self.numberOfLines]; 
 [super drawTextInRect:actualRect]; 
} 
@end

在使用時:

lbl_mylabel = [[myUILabel alloc] initWithFrame:CGRectMake(20, 50, 150, 600)]; 
UIColor *color = [UIColor colorWithPatternImage:[UIImage imageNamed:@"halfTransparent.png"]];//使用半透明圖片作為label的背景色 
lbl_mylabel.backgroundColor = color; 
lbl_mylabel.textAlignment = UITextAlignmentLeft; 
lbl_mylabel.textColor = UIColor.whiteColor; 
lbl_mylabel.lineBreakMode = UILineBreakModeWordWrap; 
lbl_mylabel.numberOfLines = 0; 
[lbl_mylabel setVerticalAlignment:VerticalAlignmentTop]; 
[self addSubview:lbl_mylabel];

UILabel 讓文字置頂顯示

我們經(jīng)常會遇到將Label中文字置頂,也就是將文字頂?shù)絃able框的最頂端顯示的需求,UILabel是無法對內(nèi)容文字進(jìn)行置頂處理的,所以,如果我們不對Label加以額外的設(shè)置,就會出現(xiàn)如下情況:

iOS中UILabel如何設(shè)置居上對齊、居中對齊、居下對齊及文字置頂顯示

置頂前

解決辦法:我們可以通過sizeToFit方法解決它:

- (void)viewDidLoad {
 [super viewDidLoad];
 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake((self.view.bounds.size.width - 200)/2, 100, 200, 150)];
 label.backgroundColor = [UIColor yellowColor];
 NSString *labelText = @"我不知道如何置頂,誰來告訴我?";
 [label setText:labelText];
 [label setNumberOfLines:0];  
 //讓內(nèi)容置頂
 [label sizeToFit];
 [self.view addSubview:label];
}

效果圖:

iOS中UILabel如何設(shè)置居上對齊、居中對齊、居下對齊及文字置頂顯示

置頂后

但是有些小伙伴會對內(nèi)容置頂后的Label的frame有些顧慮,筆者也有,所以就在Label后方放置了一個和初始Label具有相同frame的紅色背景,那么如果設(shè)置sizeToFit方法后,即使Label的frame有變化,我們也可以通過和紅色背景的frame相對比而看出:

iOS中UILabel如何設(shè)置居上對齊、居中對齊、居下對齊及文字置頂顯示

置頂前后frame對比

我們可以看到,文字內(nèi)容置頂后,原Label的origin幾乎沒有變化,而bounds適應(yīng)了文字,大小改變了。
所以不難看出,通過sizeToFit方法,我們可以將Label的大小“剛好”緊貼文字外部,從而實現(xiàn)了置頂?shù)男Ч?/p>

以上是“iOS中UILabel如何設(shè)置居上對齊、居中對齊、居下對齊及文字置頂顯示”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁題目:iOS中UILabel如何設(shè)置居上對齊、居中對齊、居下對齊及文字置頂顯示
文章鏈接:http://jinyejixie.com/article6/jjppig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站設(shè)計、移動網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、商城網(wǎng)站、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
桃源县| 三原县| 楚雄市| 伊春市| 郸城县| 无为县| 广东省| 上栗县| 凤城市| 金秀| 四会市| 上高县| 大洼县| 基隆市| 永福县| 苍南县| 兰州市| 扎赉特旗| 松江区| 景泰县| 峡江县| 广南县| 修水县| 揭西县| 刚察县| 山西省| 天门市| 桐梓县| 西畴县| 耿马| 图片| 屯留县| 平谷区| 新平| 永平县| 桃园县| 泸州市| 南雄市| 南城县| 承德县| 囊谦县|