tit*_*coy 5 cocoa-touch ipad uipopovercontroller ios
我有一个UIPopoverController包含UITableView.弹出窗口在其视图控制器的-viewDidAppear功能中调整大小以适合表的内容.当弹出窗口正确调整大小时,它的箭头通常不再指向原始箭头CGRect.有没有办法强制弹出窗口在调整大小后重新定位自身,使其箭头指向其预定目标?
编辑:我无法设置弹出窗口的大小,-viewDidLoad因为表视图在-viewDidAppear调用之前不会加载其数据,因此我不知道弹出窗口的大小应该是什么.另外,当单击其中一个表格视图单元格以显示另一个视图时,我会调整popover的大小,这也会导致箭头不再指向其预期目标.
我认为这可能是错误的方法,因为你不得不重新开始内置箭头的内置行为.
我没有调整popover内容的大小viewDidAppear.我contentSizeForViewInPopover在视图控制器的viewDidLoad方法中设置了属性,例如:
- (void)viewDidLoad
{
[super viewDidLoad];
self.contentSizeForViewInPopover = CGSizeMake(320, 155); // sized for a 3-row UITableView
}
Run Code Online (Sandbox Code Playgroud)
(快速警告:如果您正在开发通用应用程序,此代码将导致运行3.1.x及更低版本的设备出现运行时崩溃.)
您还可以在呈现弹出窗口控制器之前设置弹出控制器的内容大小,这应该可以解决您的问题.看看popoverContentSize酒店.