1. 程式人生 > >iOS UILabel 文字 置頂/置底 實現

iOS UILabel 文字 置頂/置底 實現

iOS UILabel控制元件預設文字位置是居中的,如圖所示:

這裡寫圖片描述

但是我們經常碰到這樣的需求,希望文字向上置頂,或者向下置底,但是很遺憾,iOS API中並沒有提供相應的屬性和方法,需要我們手動設定。

利用 分類(category)為UILabel新增屬性 isTop 和 isBottom來控制文字是否置頂和置底。

實現:利用往文字後面活前面下面新增”\n”來實現文字填充滿整個UILable控制元件實現置頂/置頂效果

.h檔案

#import <UIKit/UIKit.h>

@interface UILabel (TextAlign)

@property (nonatomic
, assign) BOOL isTop; @property (nonatomic, assign) BOOL isBottom; @end

.m檔案

#import "UILabel+TextAlign.h"

@implementation UILabel (TextAlign)

-(void)setIsTop:(BOOL)isTop {

    if (isTop) {

        CGSize fontSize = [self.text sizeWithFont:self.font];
        //控制元件的高度除以一行文字的高度
        int num = self
.frame.size.height/fontSize.height; //計算需要新增換行符個數 int newLinesToPad = num - self.numberOfLines; self.numberOfLines = 0; for(int i=0; i<newLinesToPad; i++) //在文字後面新增換行符"/n" self.text = [self.text stringByAppendingString:@"\n"]; } } -(void)setIsBottom:(BOOL
)isBottom { if (isBottom) { CGSize fontSize = [self.text sizeWithFont:self.font]; //控制元件的高度除以一行文字的高度 int num = self.frame.size.height/fontSize.height; //計算需要新增換行符個數 int newLinesToPad = num - self.numberOfLines; self.numberOfLines = 0; for(int i=0; i<newLinesToPad; i++) //在文字前面新增換行符"/n" self.text = [NSString stringWithFormat:@" \n%@",self.text]; } } @end

使用方法:
匯入標頭檔案

#import "UILabel+TextAlign.h"

然後設定屬性


//置頂
self.lb.isTop = YES;

//置底
self.lb.isBottom = YES;

此時效果:

相關推薦

iOS UILabel 文字 / 實現

iOS UILabel控制元件預設文字位置是居中的,如圖所示: 但是我們經常碰到這樣的需求,希望文字向上置頂,或者向下置底,但是很遺憾,iOS API中並沒有提供相應的屬性和方法,需要我們手動設定

iOS UILabel文字或者文字居下的方法

#import <UIKit/UIKit.h> @interface UILabel (TextAlign) @property (nonatomic, assign) BOOL is

實現上移下移 效果

html <div> <span (click)="caretDirection(col,'up')"><i class="anticon anticon-c

iOS UILabel文字新增描邊實現

可以達到文字描一圈黑邊的效果: 繼承UILabel以後過載drawTextInRect: - (void)drawTextInRect:(CGRect)rect { CGSize shad

[] 自己動手實現OpenGL之glViewPort(一)

直接上程式碼。 public static void glViewport( int x, int y, int width, int height ) { int surfaceHeig

iOS UIlabel文字排版(改變字間距行間距)分類

在iOS開發中經常會用到UIlabel來展示一些文字性的內容,但是預設的文字排版會覺得有些擠,為了更美觀也更易於閱讀我們可以通過某些方法將UIlabel的行間距和字間距按照需要調節。 比如一個Label的預設間距效果是這樣: 然後用一個封裝起來的Category來調整這

IOS UILabel 文字描邊詳解

剛開始覺得這功能很娛樂…… 後來想想,任何設計都是有他的道理,有他的原因的,除非特別不合理,我會選擇無視。 無論美醜,人家設計出來,作為RD,你就應該能夠夠給做出來(值不值得做 另說),就算沒幾天被砍掉,也沒轍…… 最開始實在這裡找到的答案: http://stackove

Android仿ios微信左劃條目刪除、實現,程式碼簡潔,更容易理解使用

<span style="font-family:Arial, Helvetica, sans-serif;"><span style="background-color: rgb(255, 255, 255);">歡迎大家</span></span

iOS UILabel居上對齊,居中對齊,居下對齊

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

iOS--CollectionView添加類似TableView的TableViewHeaderView 和 SectionHeader 的懸停效果

inter 頂部 edge .net 但是 con pan mint ont 1.懸停效果    http://blog.csdn.net/liangyc0129/article/details/51781722   主要參考此博客,使用 JHHeaderFlowLayou

js滾動顯示: 滾動條/

java div javascrip chat scrip win eight height hat <script> //當聊天室的內容超出頁面範圍時, 如何讓頁面刷新後 顯示最下面的內容 document.getElementByIdx ( ‘chatb

(轉載)利用SIFT和RANSAC算法(openCV框架)實現物體的檢測與定位,並求出變換矩陣(findFundamentalMat和findHomography的比較)

bsp 解釋 邊界 返回值 class 不同的 rip 很多 per 原文鏈接:https://blog.csdn.net/qq_25352981/article/details/46914837#commentsedit 本文目標是通過使用SIFT和RANSAC算

實現滾輪監聽,導航欄的效果。

nav idt ack doc color win ID cti col 為了項目的制作,需要一個導航欄置頂的效果,遇到了點難度,但還是克服了,通過比較導航和滾動條的高度實現置頂效果 <div id="daohang" style="width:100%;heig

決策樹之ID3演算法實現(python) [] 怒寫一個digit classification(不斷更新中)

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

仿QQ實現側滑效果和刪除、功能——ListView版

我儘量不打錯別字,用詞準確,不造成閱讀障礙 高仿QQ側滑效果,實現置頂、刪除功能,完美適用於ListView,至於RecyclerView正在研究,效果有些問題。 本側滑很簡單,只有右側的側滑,並沒有其他酷炫的功能,希望給大家一個提示思路,如果需求簡單的話

Android實現介面滾動時頂部部分內容

先看效果。 實現與分析 很顯然,這樣的效果用到了Android Material Design裡的控制元件,分別是CoordinatorLayout和AppBarLayout。其中,AppBarLayout控制元件便具備頂部固定的功能,但它需要被Coord

Android仿QQ和iOS的ListView左滑出現刪除和等操作,可自定義選單

一:介紹 大家在專案中可能會有對ListView向左滑動的時候出現刪除,置頂等等操作的需求,例如QQ聊天列表左滑,iOS中左滑刪除等等,下面就介紹一下如何實現這種效果 二:先給大家展示效果圖,先睹為快 三:實現步驟 1.這種效果的ListView是自定義的控制元件,開源庫的下載地址是

js上移、下移、功能

實現頁面上列表內容上移、下移、置頂、置底 功能,主要實現思路是節點操作,比如說:上移,直接把點選項移動到前一個節點,以此類推,當然實際程式碼實現還要加些判斷,如當前點選操作項是否已經是置底或置底了,如果是則給點相應提示,好讓操作者知道發生了什麼事情。 具體原

仿QQ對話列表滑動刪除與的原理及實現

接下來,我們將完成QQ聊天介面的ListView滑動效果,大家可能都用過ListView,知道ListView是上下滑動的,並不會產生左右滑動的效果,如果想讓ListView變成左右滑動的效果,必須對安卓原始碼有所瞭解,如果你想了解原始碼,請到http://blog.csd

RecyclerView實現帶有頭部的頂部懸浮佈局

由於專案需求需要,需要一個帶有頭部的吸頂佈局,在網上搜索了好多實現辦法,都不太理想,最終使用對RecyclerView新增分割線的方式,重寫了RecyclerView的分割線來實現這個懸浮欄。效果比較簡單,但是比較實用,下面主要介紹實現過程。 首先先貼上效果圖