0
의 선택된 세그먼트에서 UIPopover을 제시 어떻게 UIToolBar 서브 뷰 이다 의 선택된 세그먼트 UISegmentedControl에서 팝 오버를 표시해야합니다.은 UISegmentedControl
// UISegemntedControl
NSArray *segments = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
_segmentedControl = [[UISegmentedControl alloc] initWithItems:segments];
_segmentedControl.frame = CGRectMake(self.frame.size.width/2-128, self.frame.size.height/2-12, 256, 24);
_segmentedControl.selectedSegmentIndex = 0;
[self addSubview:_segmentedControl];
쇼 팝 오버 : 다음은 내 코드입니다
- (void)show
{
UIView *view = [toolBar.segmentedControl.subviews objectAtIndex:toolBar.segmentedControl.selectedSegmentIndex];
// UIPopoverController
[popover presentPopoverFromRect:view.bounds inView:view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
그것은 작동하지만 때마다 팝 오버 잘못 세그먼트에서 제공합니다. 나는 ... 왜 모르는
UPDATE : 해결 방법 : 세그먼트가 동일한 경우
float width = toolBar.segmentedControl.frame.size.width/toolBar.segmentedControl.subviews.count;
CGRect bounds = CGRectMake(toolBar.segmentedControl.frame.origin.x+width*toolBar.segmentedControl.selectedSegmentIndex, toolBar.segmentedControl.frame.origin.y, width, toolBat.segmentedControl.frame.size.height);
...
[popover presentPopoverFromRect:bounds inView:toolBar permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
솔루션이있다을. 고맙습니다. – joycoma