popoverContentSize在iOS 8中没有响应 [英] popoverContentSize not responding in iOS 8

查看:144
本文介绍了popoverContentSize在iOS 8中没有响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一段代码如下:
self.popOverController.popoverContentSize = CGSizeMake(248.0,216.0);



这个工作正常iOS 7及以下版本。但是,它不响应iOS 8中的CGSizeMake。无论CGSizeMake()中指定的值是什么,它都采用相同的默认大小。



请回复用另一个代码。

解决方案

采取两个步骤解决这个问题



第一步:



作为即时修复,您可以设置 preferredContentSize 属性UIViewController


  [popoverViewController setPreferredContentSize:CGSizeMake(248.0,216.0)];初始化 UIPopoverController   


$ C>




  UIPopoverController * popoverController = [[UIPopoverController的alloc] initWithContentViewController:popoverViewController]; 


第二步:



在iOS8中, UIPopoverPresentationController 将作为 UIPopoverController 的替代品推出




 如果([popoverViewController respondsToSelector:@selector(popoverPresentationController)]){
popoverViewController .modalPresentationStyle = UIModalPresentationPopover;
[popoverViewController setPreferredContentSize:CGSizeMake(248.0,216.0)];

UIPopoverPresentationController * popoverPresentation = popoverViewController.popoverPresentationController;
[popoverPresentation setSourceView:_sourceView];
[popoverPresentation setSourceRect:_sourceRect];
[popoverPresentation setPermittedArrowDirections:UIPopoverArrowDirectionUp];

[self presentViewController:popoverViewController animated:YES completion:nil];
} else {
//现有代码...
}


截至目前,预发布文档可供进一步参考。


I Have a piece of code which is as follows: self.popOverController.popoverContentSize = CGSizeMake(248.0, 216.0);

This works fine in iOS 7 and below. However, it doesn't respond to CGSizeMake in iOS 8. No matter what the value is specified with in CGSizeMake(), it takes the same default size.

Please reply with an alternative code.

解决方案

Take two steps to solve this

Step One:

As an immediate fix, you can set preferredContentSize property of UIViewController

[popoverViewController setPreferredContentSize:CGSizeMake(248.0,216.0)]; 

before initalizing UIPopoverController

UIPopoverController *popoverController = [[UIPopoverController alloc]initWithContentViewController:popoverViewController];

Step Two:

In iOS8, UIPopoverPresentationController is getting introduced as a replacement of UIPopoverController

if ([popoverViewController respondsToSelector:@selector(popoverPresentationController)]) {
   popoverViewController.modalPresentationStyle = UIModalPresentationPopover;
   [popoverViewController setPreferredContentSize:CGSizeMake(248.0,216.0)];

   UIPopoverPresentationController *popoverPresentation = popoverViewController.popoverPresentationController;
   [popoverPresentation setSourceView:_sourceView];
   [popoverPresentation setSourceRect:_sourceRect];
   [popoverPresentation setPermittedArrowDirections:UIPopoverArrowDirectionUp];

   [self presentViewController:popoverViewController animated:YES completion:nil];
} else {
   //existing code...
}

As of now, pre-release documentation is available for further reference.

这篇关于popoverContentSize在iOS 8中没有响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆