日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

固定UILabel宽度分行显示

發布時間:2024/4/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 固定UILabel宽度分行显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

固定UILabel寬度分行顯示

這種小伎倆估計都被用爛了,筆者給大家提供一個category文件,供大家簡單設置哦.

各種富文本效果哦(普通文本也是可以用的呢):

3行,固定寬度200

2行,固定寬度200

無限行,固定寬度250

無限行,固定寬度250,設置段落樣式

源碼:

UILabel+SizeToFit.h? 與? UILabel+SizeToFit.m

// // UILabel+SizeToFit.h // SizeToFit // // Copyright (c) 2014年 Y.X. All rights reserved. //#import <UIKit/UIKit.h>@interface UILabel (SizeToFit)- (void)fixWidth:(CGFloat)width // 固定寬度position:(CGPoint)position // 文字起始位置numberOfLines:(NSInteger)lines // 行數(如果為0則表示為無限行)lineBreakMode:(NSLineBreakMode)mode; // 文字斷開方式@end

// // UILabel+SizeToFit.m // SizeToFit // // Copyright (c) 2014年 Y.X. All rights reserved. //#import "UILabel+SizeToFit.h"@implementation UILabel (SizeToFit) - (void)fixWidth:(CGFloat)widthposition:(CGPoint)positionnumberOfLines:(NSInteger)lineslineBreakMode:(NSLineBreakMode)mode {CGRect newRect = self.frame;newRect.size.width = width;newRect.origin = position;self.frame = newRect;self.numberOfLines = lines;self.lineBreakMode = mode;[self sizeToFit]; }@end
使用的源碼(注,此處用到了自己寫的一些源碼,請君自行替換):
// // RootViewController.m // SizeToFit // // Copyright (c) 2014年 Y.X. All rights reserved. //#import "RootViewController.h" #import "UILabel+SizeToFit.h" #import "FontPool.h"@interface RootViewController ()@end@implementation RootViewController- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];if (self) {}return self; }- (void)viewDidLoad {[super viewDidLoad];self.view.backgroundColor = [UIColor blackColor];// 注冊字體REGISTER_FONT(bundleFont(@"新蒂小丸子體.ttf"), @"新蒂小丸子體");// 設置段落樣式NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];style.firstLineHeadIndent = 14.f * 2;// 設置富文本NSString *testStr = @"如果我有尾巴的話 —— 說起來有點不好意思,只要和你在一起,一定會止不住搖起來的吧。";NSArray *array \= @[[ConfigAttributedString font:[UIFont fontWithName:CUSTOM_FONT(@"新蒂小丸子體", 0) size:12.f]range:[testStr range]],[ConfigAttributedString foregroundColor:[UIColor whiteColor]range:[testStr range]],[ConfigAttributedString paragraphStyle:stylerange:[testStr range]],[ConfigAttributedString font:[UIFont fontWithName:CUSTOM_FONT(@"新蒂小丸子體", 0) size:14.f]range:[@"如果我有尾巴的話" rangeFrom:testStr]],[ConfigAttributedString foregroundColor:[UIColor redColor]range:[@"如果我有尾巴的話" rangeFrom:testStr]]];// 創建labelUILabel *label = [UILabel new];// 設置富文本label.attributedText = [testStr createAttributedStringAndConfig:array];// 0行,固定寬度200[label fixWidth:250position:CGPointMake(50, 100)numberOfLines:0lineBreakMode:NSLineBreakByTruncatingMiddle];[self.view addSubview:label]; }@end

核心代碼處:

注意,只有執行了sizeToFit才是解決問題的關鍵所在:

就是這么簡單:)

總結

以上是生活随笔為你收集整理的固定UILabel宽度分行显示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。