我可以維護UISegmentViewControl段的選定狀態嗎? 即即使用戶選擇另一個分段,也可以保持一個分段顯示選擇 我似乎無法找到任何地方做到這一點!在UISegmentedControl中維護選擇
3
A
回答
0
這是不可能開箱即用的。 (請參閱How can I enable multiple segments of a UISegmentedControl to be selected?。)
您可以嘗試類似this code的類似功能。
0
我找到了一個圍繞這個的方法。我在每個段後面放置了深色的圖像,並將它們的隱藏屬性設置爲true。然後我減少了uisegmented控件的alpha值。然後在代碼中點擊段時,可見開或關,所以多段出現另一種解決方案可能會使用一個類別中選擇
0
:
#import <UIKit/UISegmentedControl.h>
@interface UISegmentedControl (MultiSelect)
@end
這樣做,你必須在原則上獲得UISegmentedControl的私有成員變量。特別是,您可以訪問保存按鈕段的數組,通過重寫setSelectedSegmentIndex:selectedSegmentIndex:。您可以根據需要操作按鈕段。但是,由於各種原因,聲明爲私有的屬性仍然不應直接訪問,請參閱this link 。同樣如此,您可以寧願濫用KVC。所以實現可能看起來如下:
@implementation UISegmentedControl (MultiSelect)
- (void)setSelectedSegmentIndex:(NSInteger)selectedSegmentIndex {
NSMutableArray *pArraySegments = [self valueForKey:@"segments"];
if ((pArraySegments) && (selectedSegmentIndex >= 0) && (selectedSegmentIndex < [pArraySegments count])) {
UIButton *pSegment = (UIButton*)[pArraySegments objectAtIndex:selectedSegmentIndex];
pSegment.selected ? (pSegment.selected = NO) : (pSegment.selected = YES);
}
}
@end
這適用於我。但是,由於我現在閱讀this discussion,我不太確定這是否是一種真正有效的方法。
相關問題
- 1. 維護多級菜單選擇
- 2. UISegmentedControl選擇不工作
- 3. UISegmentedControl在值更改時不選擇
- 4. UISegmentedControl中多個段的選擇
- 5. 如何在數據更改時維護DataGrid中的選擇?
- 6. 在ASP.NET GridView控件中維護行選擇
- 7. WPF在選項卡更改時維護列表框選擇
- 8. 在UISegmentedControl上選擇和取消選擇段?
- 9. 在摺疊樹視圖時,選擇項不會得到維護
- 10. Excel Range.Find和維護用戶選擇的查找選項
- 11. 如何設置UISegmentedControl的初始選擇
- 12. UISegmentedControl - 最後段不容易選擇
- 13. 存儲以前選擇的UISegmentedControl段?
- 14. 選擇UISegmentedControl控件導致SIGABRT
- 15. 帶tintColor的UISegmentedControl不顯示選擇?
- 16. 維護複選框行爲
- 17. 角度更新模型數據維護選擇列表中的選定選項
- 18. 刪除選擇uisegmentedcontrol選擇後單擊一個保存按鈕
- 19. 維護TabNavigator中的組合框選項
- 20. 在global.asax中維護pageViews(asp.net)
- 21. 在Silverlight中維護會話
- 22. 在grails中維護會話
- 23. 在Zend_Form_Element_File中維護值
- 24. 在Java中維護top-k
- 25. hyperdex仍在維護中嗎?
- 26. 如何在jquery中的autopostback後維護選定的選項卡?
- 27. 在J2ME中維護多層次選擇菜單列表的好方法
- 28. MVC使用日期選擇器在文本框中維護日期
- 29. Fusioncharts是否仍然維護?任何選擇?
- 30. 拆分視圖/彈出式維護選擇