2014-04-02 78 views
0

如何將填充添加到以編程方式創建的UIlabel文本中?添加填充以編程方式創建的UILabel

NSArray *collectionViewArrayTitle = _titleArray[collectionView.index]; 
NSString *title= collectionViewArrayTitle[indexPath.item]; 
newslabel =[[UILabel alloc] initWithFrame:CGRectMake(0, 80, 130, 50)]; 
_newslabel.textColor=[UIColor whiteColor]; 
_newslabel.backgroundColor=[UIColor blackColor] ; 
_newslabel.alpha=1.0f; 
_newslabel.text=title; 
_newslabel.tag=collectionView.index; 
_newslabel.lineBreakMode=NSLineBreakByTruncatingTail; 
_newslabel.numberOfLines=4; 

回答

1

爲標籤添加「填充」的最佳方法是製作UILabel的子類並添加edgeInsets屬性。

CustomLabel.h 

#import <UIKit/UIKit.h> 

@interface CustomLabel : UILabel 

@property (nonatomic, assign) UIEdgeInsets edgeInsets; 

@end 
CustomLabel.m 

#import "CustomLabel.h" 

@implementation CustomLabel 

- (id)initWithFrame:(CGRect)frame{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     self.edgeInsets = UIEdgeInsetsMake(0, 10, 0, 0); //customize padding here 
    } 
    return self; 
} 

- (void)drawTextInRect:(CGRect)rect { 
    [super drawTextInRect:UIEdgeInsetsInsetRect(rect, self.edgeInsets)]; 
} 

@end 

添加填充的另一種方式是使用一個第二層。這可能會更容易完成,但它不是處理它的最乾淨的方法。你可以添加一個UIView與標籤的大小,然後用一些填充來調整該框架。然後,您可以添加預期的UILabel到這個視圖,並與原點一起玩,從而得到正確的填充。

1

NSLayoutConstrains是Obj-C對象。您也可以通過編程方式創建它們。或者,您也可以在故事板中創建它們,然後將插座拖放到您的控制器並在代碼上操作它們。

在代碼上,您可以使用NSConstrain類處理該代碼,也可以使用VFL(可視格式語言)。無論如何,請檢查Apple's documentation。一旦你掌握了它,這很簡單。

相關問題