正常的按鈕,你可以做如何使UIBarButton工作作爲開關鑑於UIBarButton沒有選定的屬性
btn.selected =!btn.selected。
我會如何用UIBarButton來解決這個問題?
正常的按鈕,你可以做如何使UIBarButton工作作爲開關鑑於UIBarButton沒有選定的屬性
btn.selected =!btn.selected。
我會如何用UIBarButton來解決這個問題?
您可以用自定義視圖
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:normalImage forState:UIControlStateNormal];
[button setImage:selectedImage forState:UIControlStateSelected];
[button addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:button];
然後
-(void)btnClick:(id)sender{
UIBarButtonItem *item = (UIBarButtonItem *)sender;
UIButton *button = (UIButton *)item.customView;
[button setIsSelected:YES];
}
想法1.如果您在IB中創建界面,請嘗試將標準UIButton對象拖入UIToolbar。這應該將UIButton封裝在UIBarButton中。 將UIBarButton對象設置爲普通。像往常一樣創建網點。 然後,您可以使用標準按鈕以及所有可愛的標準事物,例如工具欄中的選定狀態。
想法2.我幾乎放棄了使用工具欄,因爲控件不靈活,正如你找到的。現在我只需將UIToolbar的實例替換爲UIViews,並執行少量代碼以管理旋轉,調整大小等等......我發現它更加靈活,讓我更容易地包含其他控件。
你可以在UIBarItem裏面使用一個自定義的按鈕,保持一個按鈕就可以了。
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:self.yourButton]
[self.navigationItem setRightBarButtonItem:barButton];
然後:
self.yourButton.select = !self.yourButton.select;
它是不可能有通過的UIBarButtonItem選定的屬性創建的UIBarButtonItem馬上。但是您可以通過放置UIButton並將其定製爲UIBarbutton來實現此目的。這個鏈接對你更有用... How do I programmatically get the state of UIBarButtonItems?
UIBarButtonItem * add = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addNewRow :)]; (void)addNewRow:(UIButton *)sender(or) - (void)addNewRow:(UIBarButton *)sender .... both will work – 2013-03-19 09:05:29