iPad popover - 如何指向分段控件中的一个片段?

时间:2012-03-17 09:13:34

标签: ios popover

我有一个iPad popover,并希望在分段控件中呈现(指向)一个片段。下面的代码工作正常,除了指针指向分段控件的中间 - 我希望它指向正确的段。即段0或段1。

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

非常感谢。

3 个答案:

答案 0 :(得分:5)

下面的代码可能有助于将popover指向段控件中的选定选项卡。

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];

答案 1 :(得分: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];

我没有对此进行测试,但它(或类似的东西)应该可以正常工作。

答案 2 :(得分:0)

针对Swift 3.0进行了更新

matMult()