2015-04-30 101 views
1

我是iOS編程中的新手,我正在創建標籤和按鈕。所有的時間我必須爲每個標籤和按鈕編寫相同的代碼。是否有任何方法或代碼來製作所有按鈕和標籤?快速創建按鈕和標籤

這些是我的代碼,用相同的代碼製作2個標籤,只是名稱不同。

UILabel *lbl1 = [[UILabel alloc]initWithFrame:CGRectMake(5, 10, 30,30)]; 
    [lbl1 setText:@"User Name"]; 
    lbl1.backgroundColor=[UIColor clearColor]; 
    [self.view addSubview:lbl1]; 


    UILabel *lbl2 = [[UILabel alloc]initWithFrame:CGRectMake(105, 100, 30, 30)]; 
    [lbl2 setText:@"Age"]; 
    lbl2.backgroundColor=[UIColor clearColor]; 
    [self.view addSubview:lbl2]; 

感謝

回答

2

可以使用storyboard(這也與可視化幫助)。如果你堅持通過代碼生成用戶界面,你應該建立一個自定義的方法,例如

- (void)createLabelWithFrame:(CGRect)frame andText:(NSString *)text { 
    UILabel *lbl = [[UILabel alloc]initWithFrame:frame]; 
    [lbl setText:text]; 
    lbl.backgroundColor=[UIColor clearColor]; 
    [self.view addSubview:lbl]; 
} 

你可以反覆調用。

+0

好吧,我會試着用你的把戲。謝謝 –

+0

如果我使用storyboard我必須爲iPhone 4,5和6創建故事borads,因爲幀大小是不同的。 –

+0

不,你不需要;您可以使用AutoLayout(或舊的自動調整大小功能)來適應不同的屏幕尺寸。互聯網上有大量關於這方面的信息。 – Glorfindel

-1

就可以像下面的代碼:

- (void)addLabelWithFrame:(CGRect)frame andText:(NSString *)text andTag:(int)tagValue { 
    UILabel *lbl = [[UILabel alloc]initWithFrame:frame]; 
    [lbl setText:text]; 
    [lbl setTag:tagValue]; // To Uniquely Identify you label 
    lbl.backgroundColor=[UIColor clearColor]; 
    [self.view addSubview:lbl]; 
} 

調用此方法,如下面

for(int i=0;i<numberOfLabel;i++){ 

    [self addLabelWithFrame:passYourFrameHere andText:@"text to show" andTag:i]; 
} 

,並獲得外循環標籤試試下面

UILabel *lbl = [self.view viewWithTag:passYourTag]; 

UPDATE:

如果你把這個在AppDelegate然後

AppDelegate *refAppDelegate = [[UIApplication SharedApplication] delegate] 
[refAppDelegate addLabelWithFrame:yourFrame andText:@"text" andTag:1]; 

希望這可以幫助你。

+0

如果我創建一個單例類,並在那裏聲明一個方法,並從我的類調用,然後將它的工作? –

+0

它會工作,但如果你想這種方法全球,那麼爲什麼你不在AppDelegate.h和.m –

+0

添加這個檢查我的編輯... –