2014-04-24 30 views
0

我已經創建了我自己的自定義過濾器視圖,我想像UISegmentedControl一樣。我已經將它設置爲一個視圖,然後是3個UIButton。我想知道如何做到這一點,所以當點擊其他兩個被取消選擇和api調用該按鈕,然後重新加載它下面的UICollectionView。如何使用自定義UIButtons獲得UISegementedControl功能?

下面是我的觀點與3按鈕的圖片,希望能更好地解釋我正在嘗試做什麼。

enter image description here

+1

到目前爲止您嘗試過什麼?請分享一些代碼。另外,爲什麼不按照HIG使用'UISegmentedControl'? –

+0

我是iOS的新手,所以我更多地問我如何解決這個問題,而不是解決特定問題。我沒有使用'UISegmentedControl',因爲我沒有意識到我可以將它看起來像上面的圖像,並認爲它的設計定製是有限的。 – jckly

回答

2

連接所有的按鈕來此IBAction並定義標籤每個按鈕。

- (IBAction)pressButton:(id)sender { 

    UIButton* button1 = (UIButton*)[self.view viewWithTag:99]; 
    UIButton* button2 = (UIButton*)[self.view viewWithTag:100]; 
    UIButton* button3 = (UIButton*)[self.view viewWithTag:101]; 

    [button1 setEnabled:NO]; 
    [button2 setEnabled:NO]; 
    [button3 setEnabled:NO]; 

    [button1 setSelected:NO]; 
    [button2 setSelected:NO]; 
    [button3 setSelected:NO]; 

    if([sender tag]==99){ 
     [button1 setSelected:YES]; 
     [button1 setEnabled:YES]; 
    }else if([sender tag]==100){ 
     [button2 setSelected:YES]; 
     [button2 setEnabled:YES]; 
    }else{ 
     [button3 setSelected:YES]; 
     [button3 setEnabled:YES]; 
    } 

} 
+0

非常感謝我正在尋找的東西。 – jckly

+1

SetEnabled必須反轉:[button1 setEnabled:YES]; [button2 setEnabled:YES]; [button3 setEnabled:YES]; –

+1

if([sender tag] == 99){button1 setSelected:YES]; [button1 setEnabled:NO]; }等 –