我有一个view
里面有一堆按钮UIScrollView
。当用户按下按钮时,我希望显示一个 UIPopOverController 指向所选按钮。它有点工作,但是弹出窗口的大小错误并且指向视图中的随机点。这是我的代码。
-(void)detail:(id)sender{
UIButton *button = sender;
NSLog(@"tag = %i", button.tag);
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
self.popover = [[UIPopoverController alloc] initWithContentViewController:navController];
self.popover.delegate = self;
[self.popover presentPopoverFromRect:button.bounds inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
比弹出窗口的大小问题:
在弹出窗口内的视图中,我有:
self.contentSizeForViewInPopover = scroll.contentSize;
NSLog(@"%f, %f", scroll.contentSize.height, scroll.contentSize.width);
NSLog(@"showing: %f, %f", self.contentSizeForViewInPopover.height, self.contentSizeForViewInPopover.width);
并且两个日志都是匹配的。所以我认为一切都应该正常进行。但事实并非如此。这是一个屏幕截图。如果您需要更多我的代码,请告诉我。提前致谢。
我注意到的第一件事是你应该使用button.frame而不是button.boundsfrom长方形。这些之间的区别UIView http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html特性:
视图的几何形状由其框架、边界和中心定义
特性。框架属性定义了原点和尺寸
视图位于其父视图的坐标系中,通常是
在布局期间用于调整视图的大小或位置。
bounds 属性定义了视图的内部尺寸
看到它们并且几乎只在自定义绘图代码中使用。
您可以设置您的高度popover http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPopoverController_class/Reference/Reference.html控制器使用其设置Popover内容大小 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIPopoverController_class/Reference/Reference.html#//apple_ref/occ/instm/UIPopoverController/setPopoverContentSize%3aanimated%3a信息:
// so something like this ...
[self.popover setPopoverContentSize:CGSizeMake(320, 460)];
// and to bind the popover to your button
[self.popover presentPopoverFromRect:button.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)