2012-03-17 23 views
2

我有一個iPad彈出窗口,並希望在一個分段控件中呈現(指向)一個段。下面的代碼工作正常,除了指針指向分段控制的中間 - 我寧願它指向正確的段。即段0或段1.iPad popover - 您如何指向分段控件中的一個細分?

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    [printController presentFromBarButtonItem:self.navigationItem.rightBarButtonItem animated:YES completionHandler:completionHandler];// iPad 
} 

非常感謝。

回答

0

嘗試這樣的事情(與段的箭頭應指向的指數代替desiredSegmentIndex):

CGFloat desiredOffset = 0; 
for (NSUInteger segmentIndex = 0; segmentIndex < desiredSegmentIndex; segmentIndex ++) 
    desiredOffset += [segmentedControl widthForSegmentAtIndex:segmentIndex]; 
[printController presentFromRect:CGRectMake(desiredOffset, 0, [segmentedControl widthForSegmentAtIndex:desiredSegmentIndex], segmentedControl.bounds.size.height); 
          inView:segmentedControl 
         animated:YES 
       completionHandler:completionHandler]; 

我沒有測試過這一點,但它(或非常類似的東西)應該工作。

5

下面的代碼可能對指定彈出窗口到段控件中選定的選項卡有用。

CGRect frame = [segmentControl frame]; 
frame =CGRectMake((frame.size.width/No. of segments * [segmentControl selectedSegmentIndex]), 0, frame.size.width/No. of segments, segmentControl.bounds.size.height); 

[m_PopOver presentPopoverFromRect:frame inView:segmentControl permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
0

更新了雨燕3.0

var frame = segmentedControl.frame 
frame = CGRect(x: frame.size.width/CGFloat(segmentedControl.numberOfSegments) * CGFloat(segmentedControl.selectedSegmentIndex), 
       y: 0, 
       width: frame.size.width/CGFloat(segmentedControl.numberOfSegments), 
       height: segmentedControl.bounds.size.height) 


popoverController?.sourceRect = frame 
相關問題