最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年12月17日 10:30:35   作者:J_Knight_  
這篇文章主要給大家介紹了關(guān)于iOS中UILabel如何設(shè)置居上對(duì)齊、居中對(duì)齊、居下對(duì)齊及文字置頂顯示效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

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

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

具體如下:

// 
// 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 

在使用時(shí):

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

置頂前

解決辦法:我們可以通過(guò)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 = @"我不知道如何置頂,誰(shuí)來(lái)告訴我?";
 [label setText:labelText];
 [label setNumberOfLines:0];  
 //讓內(nèi)容置頂
 [label sizeToFit];
 [self.view addSubview:label];
}

效果圖:

置頂后

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

置頂前后frame對(duì)比

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • IOS網(wǎng)絡(luò)請(qǐng)求之NSURLSession使用詳解

    IOS網(wǎng)絡(luò)請(qǐng)求之NSURLSession使用詳解

    這篇文章主要介紹了IOS網(wǎng)絡(luò)請(qǐng)求之NSURLSession使用詳解,今天使用NSURLConnection分別實(shí)現(xiàn)了get、post、表單提交、文件上傳、文件下載,有興趣的可以了解一下。
    2017-02-02
  • 在iOS中使用OpenGL ES實(shí)現(xiàn)繪畫板的方法

    在iOS中使用OpenGL ES實(shí)現(xiàn)繪畫板的方法

    這篇文章主要介紹了在iOS中使用OpenGL ES實(shí)現(xiàn)繪畫板的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Xcode8 更新解決模擬器找不到的方法

    Xcode8 更新解決模擬器找不到的方法

    這篇文章主要介紹了Xcode8 更新解決模擬器找不到的方法的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • objective-c實(shí)現(xiàn)點(diǎn)到直線的距離及與垂足的交點(diǎn)

    objective-c實(shí)現(xiàn)點(diǎn)到直線的距離及與垂足的交點(diǎn)

    這篇文章主要給大家介紹了利用objective-c實(shí)現(xiàn)點(diǎn)到直線的距離及與垂足的交點(diǎn)的相關(guān)資料,文中給出了詳細(xì)的實(shí)現(xiàn)思路和實(shí)現(xiàn)代碼,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • iOS開發(fā)之自定義圖片拉伸功能

    iOS開發(fā)之自定義圖片拉伸功能

    這篇文章主要介紹了iOS開發(fā)之自定義圖片拉伸功能,需要的朋友可以參考下
    2017-06-06
  • IOS游戲開發(fā)之五子棋OC版

    IOS游戲開發(fā)之五子棋OC版

    五子棋是大家比較熟悉的一款小游戲,相信很多人用多種語(yǔ)言寫過(guò)五子棋小游戲,本文試著用OC實(shí)現(xiàn)了一下,在這里給大家分享一下。有需要的可以參考學(xué)習(xí)。
    2016-08-08
  • iOS發(fā)送驗(yàn)證碼倒計(jì)時(shí)應(yīng)用

    iOS發(fā)送驗(yàn)證碼倒計(jì)時(shí)應(yīng)用

    點(diǎn)擊發(fā)送驗(yàn)證碼button。倒計(jì)時(shí)開始,這篇文章就為大家詳細(xì)介紹了iOS發(fā)送驗(yàn)證碼倒計(jì)時(shí)應(yīng)用的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 運(yùn)用iOS教你輕松制作音樂播放器

    運(yùn)用iOS教你輕松制作音樂播放器

    這篇文章主要教大家如何運(yùn)用iOS輕松制作音樂播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • iOS圖片拉伸的4種方法

    iOS圖片拉伸的4種方法

    這篇文章主要為大家詳細(xì)介紹了iOS圖片拉伸的4種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • iOS應(yīng)用中UICollectionViewCell定制Button

    iOS應(yīng)用中UICollectionViewCell定制Button

    這篇文章主要介紹了iOS應(yīng)用中UICollectionViewCell如何定制Button,設(shè)置每行顯示的按鈕的個(gè)數(shù),自定制按鈕的顯示樣式,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評(píng)論

运城市| 永寿县| 科尔| 奇台县| 巴南区| 常熟市| 团风县| 西丰县| 新密市| 高陵县| 定南县| 芦溪县| 福清市| 万载县| 土默特右旗| 德江县| 长宁区| 巴林右旗| 乐平市| 简阳市| 栾川县| 龙门县| 曲靖市| 乐安县| 元江| 巴彦淖尔市| 三门峡市| 武乡县| 永善县| 诸城市| 靖远县| 镇巴县| 新蔡县| 平凉市| 扶风县| 江西省| 上思县| 云霄县| 洛扎县| 德化县| 太康县|