2011-07-02 37 views
1

我想創建一個按鈕集羣。爲此,我使用這樣的循環。如何在一個循環中創建按鈕併爲每個按鈕分配一個特定標籤

for (int i =0; i< [plistArray count];i++) { 

    editButton = [[UIButton alloc]initWithFrame:CGRectMake(width-10, -3.6, 39, 35)]; 
    [editButton setImage:[UIImage imageNamed:@"DeleteButton.png"] forState:UIControlStateNormal]; 
    [editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside]; 
} 

但是當我上的任何隨機按鈕分配的功能點擊未called.It當我點擊第一按鈕(在序列1,2,3)調用。

+0

你要動態地添加屏幕上的按鈕? – iMOBDEV

回答

2

這裏有一個:

#define ButtonHeight 40 

    #define OffsetBetweenButtons 20 

    #define ButtonHeightPlusOffsetBetweenButtons (ButtonHeight+OffsetBetweenButtons) 

//create 6 buttons from 0,1,2,3,4,5 so totally 6 buttons 
for(int buttonIndex=0;buttonIndex<=5;buttonIndex++){ 

    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

    [button addTarget:self 
       action:@selector(aMethod:) 
    forControlEvents:UIControlEventTouchUpInside]; 

    [button setTitle:@"Button" forState:UIControlStateNormal]; 

    [button setImage:[UIImage imageNamed:@"DeleteButton.png"] forState:UIControlStateNormal]; 

    //Set offset in Y axis 
    button.frame = CGRectMake(20.0, ButtonHeightPlusOffsetBetweenButtons * buttonIndex , 280.0, 40.0); 

    //Set Tag for future identification 
    [button setTag:buttonIndex]; 

    [YourView addSubview:button]; 

} 
+2

爲了解釋爲什麼我對這個答案投了反對票:你沒有提供任何關於代碼的解釋或_why_上的任何內容,這是你的答案,它只是一些帶有一些幻數的代碼(以及通過宏使用不一致的常量)。換句話說,我不認爲這是一個答案,就像有人直接爲提問者編寫代碼一樣。也不要喜歡你的用戶名和通過按鈕標題進行自我推銷 - 所以我也爲此付出了低估。 – nil

+0

@nil非常感謝您對我的回答和我的興趣想回答你的問題 1.爲什麼沒有我這裏 \t庫存使用比宏流,不僅是專家/經驗的開發人員。任何人都可以訪問這個問題。所以在這裏,我可以簡單地把60作爲值而不是那些宏。 \t \t但任何程序員都可以通過看到這些宏來理解。 \t \t Objective C是一種非常具有描述性的語言,它將通過方法名指定方法的用途。 –

+0

@nil 2.你指定像我自我推銷。我不打算這樣做。即使你已經指定了,因爲它已經刪除了。請記住,您也可以編輯答案。 –