我创建了一个分段控制器,它有不同大小的段。 当我检查我看到段控制器有不同的宽度尺寸段,但当我尝试触摸最大的段时,它只能触摸段的左侧部分。 (可能只是前50个px部分,但是段是160像素)。如何设置片段的可触摸区域?
//My header file:
#import <UIKit/UIKit.h>
@interface Form1 : UIViewController <UIAlertViewDelegate>{
IBOutlet UISegmentedControl *combobox6001;
}
@property (nonatomic, strong) IBOutlet UISegmentedControl *combobox6001;
@end
#import "Form1.h"
@implementation Form1
@synthesize combobox6001;
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[combobox6001 setWidth:50 forSegmentAtIndex:0];
[combobox6001 setWidth:50 forSegmentAtIndex:1];
[combobox6001 setWidth:160 forSegmentAtIndex:2];
}
答案 0 :(得分:1)
我自己也有同样的问题......事实证明,如果你在设置段的宽度之前没有设置段控件的宽度,那么你在这里遇到同样的问题。这是我的代码中修复此问题的一个示例(希望它有所帮助!):
[topSegmentedControl setFrame:CGRectMake(5.0, 5.0, frame.size.width - 26.0, topSegmentedControl.frame.size.height)];
float width1 = round(topSegmentedControl.frame.size.width * 0.125);
float width2 = round(topSegmentedControl.frame.size.width * 0.175);
float width3 = round(topSegmentedControl.frame.size.width * 0.275);
float width4 = topSegmentedControl.frame.size.width - (width1 + width2 + width3 + 3.0);
[topSegmentedControl setWidth:width1 forSegmentAtIndex:0];
[topSegmentedControl setWidth:width2 forSegmentAtIndex:1];
[topSegmentedControl setWidth:width3 forSegmentAtIndex:2];
[topSegmentedControl setWidth:width4 forSegmentAtIndex:3];