我正在構建一種帶有許多uibutton的檢查表,我使用的是代碼(不是IB)。我希望在選擇某些按鈕時,不能選擇其他按鈕。例如,我有一排按鈕將是低,中,高。我不希望用戶有可能選擇2個選項(如果他們想改變他們的選擇,那麼一次只能選2個)。關聯UIButton
我知道我的方法的一般結構,這裏是我到目前爲止有:
-(void)addButtons
這是我將填充按鈕視圖(只顯示一個按鈕,在這裏,但也有不少):
-(void)addButtons{
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(clicked:) forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"" forState:UIControlStateNormal];
button.frame = CGRectMake(209, 54, 127, 18);
button.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[imageView addSubview:button];
}
-(void)clicked:(UIButton *)sender
這是一個按鈕被點擊時將調用的方法。我希望它將自己作爲參數提交。該按鈕然後將改變其外觀以表示它已被點擊。我使它變得透明的原因是因爲我在圖像頂部有按鈕,您需要查看它們下方的按鈕。我也不認爲sender.backgroundColor = [UIColor redColor];
會像我想要的那樣工作,但那不重要。
-(void)clicked:(UIButton *)sender{
sender.alpha = 0.5;
sender.backgroundColor = [UIColor redColor];
[self setRelatedButtons:sender];
}
-(void)setRelatedButtons'
而這正是我將確保每個「設置」只有一個按鈕被選中
-(void)setRelatedButtons:(UIButton *)sender{
//since I know this button is clicked
//set related buttons to unclicked
}
總之一切的方法,這裏是什麼我想知道:
1)如何設置一個按鈕的外觀sta你選擇了?
2)我應該將什麼傳遞給我的clicked
和setRelatedButtons
方法來識別當前按鈕?現在我有按鈕本身,但有更好的?
3)關聯某些按鈕的最佳方式是什麼?我可以爲每一組按鈕使用一個數組,但我希望有更好的方法。我可以使用typedef
嗎? (從來沒有使用過其中之一)
這實際上是3個問題。 – Dustin 2012-07-13 16:05:24
在''clicked:'方法中使用這個:'((UIButton *)sender).backgroundColor = [UIColor redColor];' – 2012-07-13 16:41:16