是否有可能在iPhone上有兩行UISegmentedControl?我已經在幾個應用程序中看到了這一點,但沒有找到我需要的文檔。也許這是一個定製的UIButton,看起來像UISegmentedControl。兩行UISegmentedControl
2
A
回答
0
這是不可能使用標準UISegmentedControl
- 你必須自己繪製它。
1
我也在尋找這個。
我甚至希望第二行看起來像第一行的一部分,更像一個網格。 只能找到使用第二個UISegmentedControl,並將其與另一個技巧組合以照顧不必要的圓角邊緣。
我在執行我從UIControl(從UIView的繼承)繼承, 新增2 UISegmentControls,2個UIViews剪輯的邊緣,使它們看起來爲一體。
此外我做了一些調整,以設置視覺中心的文本域。
水平方向很容易擴展,只需很小的努力就可以添加第三行...行。
標題:
// YHSegmentedGridControl.h
#import <UIKit/UIKit.h>
@interface YHSegmentedGridControl : UIControl{
UISegmentedControl *a,*b;
UIView *va,*vb;
}
- (void)setSelectedSegmentIndex:(NSInteger)index;
- (NSInteger)selectedSegmentIndex;
@end
在.m文件:
// YHSegmentedGridControl.m
// UITestSegment2D
// Created by Yh on 22/04/13.
#import "YHSegmentedGridControl.h"
@implementation YHSegmentedGridControl
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self initWithDefaults];
}
return self;
}
實際工作:
-(void) initWithDefaults{
a = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects: @"1", @"2", nil]];
b = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects: @"3", @"4", nil]];
float e = 75;
int d = (int)e/7;
[a setFrame:CGRectMake(0, 0, 2*e, e+2*d)];
[b setFrame:CGRectMake(0, -2*d, 2*e, e+2*d)];
[a setContentOffset:CGSizeMake(0, -d) forSegmentAtIndex:0];
[a setContentOffset:CGSizeMake(0, -d) forSegmentAtIndex:1];
[b setContentOffset:CGSizeMake(0, +d) forSegmentAtIndex:0];
[b setContentOffset:CGSizeMake(0, +d) forSegmentAtIndex:1];
[a addTarget:self
action:@selector(pickOne:)
forControlEvents:UIControlEventValueChanged];
[b addTarget:self
action:@selector(pickOne:)
forControlEvents:UIControlEventValueChanged];
va = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 2*e, e)];
vb = [[UIView alloc] initWithFrame:CGRectMake(0, e, 2*e, e)];
[va setClipsToBounds:YES];
[vb setClipsToBounds:YES];
[self setFrame:CGRectMake(0,0,2*e,2*e)];
[va addSubview:a];
[vb addSubview:b];
[self addSubview:va];
[self addSubview:vb];
}
- (void)setSelectedSegmentIndex:(NSInteger)index{
if(index == UISegmentedControlNoSegment){
[a setSelectedSegmentIndex:UISegmentedControlNoSegment];
[b setSelectedSegmentIndex:UISegmentedControlNoSegment];
} else if(index < a.numberOfSegments){
[a setSelectedSegmentIndex:index];
[b setSelectedSegmentIndex:UISegmentedControlNoSegment];
} else if(index < (a.numberOfSegments + b.numberOfSegments)){
[b setSelectedSegmentIndex:(index - a.numberOfSegments)];
[a setSelectedSegmentIndex:UISegmentedControlNoSegment];
}else
NSLog(@"No such segment: index to high");
}
- (NSInteger)selectedSegmentIndex{
if(a.selectedSegmentIndex != UISegmentedControlNoSegment)
return a.selectedSegmentIndex;
else if(b.selectedSegmentIndex != UISegmentedControlNoSegment)
return b.selectedSegmentIndex + a.numberOfSegments;
else
return UISegmentedControlNoSegment;
return 0;
}
- (void)pickOne:(id)sender{
if(sender == a)
[b setSelectedSegmentIndex:UISegmentedControlNoSegment];
if(sender == b)
[a setSelectedSegmentIndex:UISegmentedControlNoSegment];
//notify
[self sendActionsForControlEvents:UIControlEventValueChanged];
}
@end
相關問題
- 1. UISegmentedControl與多行
- 2. UIsegmentedControl setTintColor奇怪的行爲
- 3. UISegmentedControl段
- 4. 在UISegmentedControl
- 5. Swipeable UISegmentedControl
- 6. 從UISegmentedControl
- 7. UISegmentedControl EXC_BAD_ACCESS
- 8. 鈦 - uisegmentedcontrol
- 9. 檢索UISegmentedControl對象進行的UIBarButtonItem
- 10. UISegmentedControl和UIAppearance的怪異行爲
- 11. UISegmentedControl背景圖像奇怪的行爲
- 12. UISegmentedControl,UIToolbar和UINavigationItem
- 13. UISegmentedControl與UITableView
- 14. UIToolbar中的UISegmentedControl
- 15. NSInvalidArgumentException使用UISegmentedControl
- 16. IOS 6 UISegmentedControl
- 17. UISegmentedControl setSelectedSegmentIndex問題
- 18. 問題UISegmentedControl
- 19. UISegmentedControl與按鈕
- 20. UISegmentedControl tintColor不iOS7
- 21. UISegmentedControl定製
- 22. 方角UISegmentedControl
- 23. UISegmentedControl未重繪
- 24. 如何從UISegmentedControl
- 25. UISegmentedControl編程
- 26. UINavigationController中的UISegmentedControl
- 27. UISegmentedControl中的badgeValue
- 28. 從AppDelegate UISegmentedControl
- 29. UITableView with UISegmentedControl
- 30. UISegmentedControl背景