1. 程式人生 > >IOS UILabel垂直頂部,中間,底部對齊

IOS UILabel垂直頂部,中間,底部對齊

在IOS中預設的UILabel中的文字是正能是居中對齊的,在應用的時候,我們可能會用到頂部或者底部對齊,下面我們就來實現UILabel的頂部,底部對齊,

首先新建一個類MyLabel繼承自UILabel,程式碼如下

#import <UIKit/UIKit.h>

typedef enum
{
    VerticalAlignmentTop=0,
    VerticalAlignmentMiddle,//default
    VerticalAlignmentBottom,
    
}VerticalAlignment;

@interface MyLabel : UILabel
{
    @private
    VerticalAlignment _verticalAlignment;
}

@property(nonatomic)VerticalAlignment verticalAlignment;

@end

實現程式碼如下
#import "MyLabel.h"

@implementation MyLabel

@synthesize verticalAlignment=_verticalAlignment;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        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 VerticalAlignmentMiddle:
            textRect.origin.y=bounds.origin.y+(bounds.size.height-textRect.size.height)/2.0;
            break;
        case VerticalAlignmentBottom:
            textRect.origin.y=bounds.origin.y+bounds.size.height-textRect.size.height;
            break;
        default:
            textRect.origin.y=bounds.origin.y+(bounds.size.height-textRect.size.height)/2.0;
            break;
    }
    return textRect;
}
-(void)drawTextInRect:(CGRect)rect
{
    CGRect actualRect=[self textRectForBounds:rect limitedToNumberOfLines:self.numberOfLines];//重新計算位置
    [super drawTextInRect:actualRect];
}

@end

在呼叫的時候首先引入MyLabel,呼叫程式碼如下:
MyLabel *lbl = [[MyLabel alloc] initWithFrame:CGRectMake(20, 20, 150, 300)];
   
    lbl.textAlignment = UITextAlignmentCenter;
    lbl.textColor = [UIColor redColor];
    lbl.lineBreakMode = UILineBreakModeWordWrap;
    lbl.numberOfLines = 0;
    [email protected]"My Content";
    [lbl setVerticalAlignment:VerticalAlignmentMiddle];
    [self.view addSubview:lbl];


相關推薦

IOS UILabel垂直頂部中間底部

在IOS中預設的UILabel中的文字是正能是居中對齊的,在應用的時候,我們可能會用到頂部或者底部對齊,下面我們就來實現UILabel的頂部,底部對齊, 首先新建一個類MyLabel繼承自UILabe

iOS UILable 文字添加圖片 (文字前面中間後面添加圖)

str nbsp tab 添加 tac nsa end agen mut 1,實例化一個UILable 2, // 創建一個富文本 NSMutableAttributedString *attri = [[NSMutableAttributedString

輸出九九乘法表乘法的乘積佔兩位並靠左每個乘法表達式之間有一個空格!

public class Main {     public static void main(String[] args) {                   &n

eclipse怎樣java程式碼自動排版快速格式化快速使程式碼

轉自:http://jingyan.baidu.com/article/3d69c5518fefe2f0cf02d705.html 如圖所示,找到"Source",點選,在彈出的下拉框內,找到"Format",然後點選, 或者快捷鍵ctrl+shift+F, 如果對單單一

table表格讓thead固定tbody有滾動條關鍵是都的純css寫法。

table加滾動條,很實用,也很簡單有效,收藏了。裡面有一個css2裡的命令是我沒用過的也是這裡面關鍵的:table-layout:fixed; 原理很簡單,有愛研究的童鞋可以去css官網看看說明文件。 直接貼程式碼: <!DOCTYPE HTML> &

什麼是位元組為什麼需要位元組

概念   在C語言中,結構是一種複合資料型別,其構成元素既可以是基本資料型別(如int、long、float等)的變數,也可以是一些複合資料型別(如陣列、結構、聯合等)的資料單元。在結構中,編譯器為結構的每個成員按其自然邊界(alignment)分配空間。各個

純css固定表格表頭表頭與表格非常實用

//控制表格滑動      table tbody {              display:block;              height:450px;              overflow-y:scroll;         }  //固定表頭    

CSS多種方式實現底部

CSS實現底部對齊效果 因公司業務要求需要實現如下圖中紅色區域的效果: 效果說明: 1、紅色區域資料需要倒排(即從底部開始數,數字為1、2、3、4、5),並且顯示在最底部 2、當資料過多時需要顯示滾動條,**並且滾動條需要拉到最底部** 3、資料從websocket

android textview文字底部設定

如果car_id 這個TextView的內的文字長度較長,會分行顯示,這時,另一個TextView car_id_num還是會顯示在第一行的位置。如果想讓car_id_num顯示在最後一行,需要新增android:layout_gravity="bottom",使其與父容器

css中怎麼讓div裡面的文字底部

舉個例子: 1.建立HTML元素 <div>文字在div的底部對齊</div> 2.新增css樣式 div{ width:200px;height:50px; /*設定div的大小*/ border:4px solid #becee

iOS上怎樣讓按鈕(UIbutton)文字左展示

// button.titleLabel.textAlignment = NSTextAlignmentLeft; 這句無效       button.contentHorizontalAlignment = UIControlContentHorizontalAlig

div內容底部

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>CSS實現文字底部對齊</title>

使用Flex 彈性佈局來實現手機端頂部底部固定中間滑動效果

html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, max

scrollIntoView將指定元素定位到瀏覽器頂部底部中間

lint pan lock col code .get near view res var element = document.getElementById("box"); element.scrollIntoView();//頂部 element.scro

頂部底部固定高度中間高度自適應的佈局

html程式碼 <div id="all"> <div id="top">top</div> <div id="conte

iOS UILabel設置居上居中居下

fall pla prop text break case pat png com 在iOS中默認的UILabel中的文字在豎直方向上僅僅能居中對齊,博主參考國外站點。從UILabel繼承了一個新類,實現了居上對齊,居中對齊,居下對齊。詳細例如以下: [c

手機端如何使得頭部底部固定中間不被遮住且展示完整資訊

這裡用的是flex #app{ display: flex; flex-direction: column; } 中間部門寫  flex:1;  所以,底部和頂部會被撐開,且固定。(這裡的中間部分我用的是h5新標籤,當然可以用div來寫)。 注:這裡面的

css 頭部和底部固定中間高度自適應出滾動條 css程式碼

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initia

android 動畫效果 translate 詳解包括 Dialog 上方彈出底部彈出中間彈出

先給出動畫效果程式碼,可以直接拿去用: 1.上方彈出: 滑入動畫( actionsheet_dialog_in): <translate     xmlns:android="http://schemas.android.com/apk/res/android"

CSS實現自適應高度佈局:頭部底部固定中間自適應鋪滿螢幕剩餘高度中間盒子裡左盒子固定右盒子自適應寬度

如題:頂部底部固定高度,中間部分鋪滿螢幕剩餘高度,中間盒子裡又左盒子固定寬度,右盒子自適應寬度且距左盒子總是20px 主要解決方法是中間盒子的top:40px;bottom:40px;設定。原理是在p