Iphone uisegmentedcontrol不';在某些区段上检测不到触摸
我在水平滚动的uiscrollview中有一个uisegmentedcontrol。scrollview工作正常,内容根据segmentedcontrol的宽度调整大小。分段控件检测第一次显示时可见的那些分段上的触摸。如果向右滚动,则无法选择新显示的分段。cuttof也不完全是一个片段,它是最初显示的内容,就像有一个视图在剪辑它一样。感谢您的帮助,我已经从scrollview中取消选择了剪辑子视图Iphone uisegmentedcontrol不';在某些区段上检测不到触摸,iphone,uiscrollview,touch,uisegmentedcontrol,Iphone,Uiscrollview,Touch,Uisegmentedcontrol,我在水平滚动的uiscrollview中有一个uisegmentedcontrol。scrollview工作正常,内容根据segmentedcontrol的宽度调整大小。分段控件检测第一次显示时可见的那些分段上的触摸。如果向右滚动,则无法选择新显示的分段。cuttof也不完全是一个片段,它是最初显示的内容,就像有一个视图在剪辑它一样。感谢您的帮助,我已经从scrollview中取消选择了剪辑子视图 // creates segmented control to indicate test to
// creates segmented control to indicate test to show on graph
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:self.labels];
segmentedControl.frame = CGRectMake(15, 41, 285, 30);
segmentedControl.autoresizingMask =
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.selectedSegmentIndex = 0;
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[segmentedControl addTarget:self action:@selector(testChange:) forControlEvents:UIControlEventValueChanged];
//checks the length of the text in each segment and asjusts control accordingly
int x = 0;
segmentWidth = 0.0;
for (id segment in [segmentedControl subviews])
{
for (id label in [segment subviews])
{
if ([label isKindOfClass:[UILabel class]])
{
[label setTextAlignment:UITextAlignmentCenter];
[label setFont:[UIFont boldSystemFontOfSize:12]];
CGFloat textWidth = [[segmentedControl titleForSegmentAtIndex:x] sizeWithFont:[UIFont boldSystemFontOfSize:12.0]].width + 20;
[segmentedControl setWidth:textWidth forSegmentAtIndex:x];
segmentWidth += textWidth;
}
}
x++;
}
self.testSegment = segmentedControl;
[segmentedControl release];
//adds segmentedcontroll to scrollview, and adjusts contensize
[scrollView setContentSize:CGSizeMake(segmentWidth + 45, scrollView.frame.size.height)];
[scrollView showsHorizontalScrollIndicator];
[scrollView addSubview:testSegment];
修正了,问题是我在计算每个段的宽度之前设置了分段控件的框架
segmentedControl.frame = CGRectMake(15, 41, segmentWidth+20, 30);
以前
self.testSegment = segmentedControl;