首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS8 iOS8控制器高度问题

iOS8 iOS8控制器高度问题
EN

Stack Overflow用户
提问于 2014-09-13 19:42:20
回答 3查看 817关注 0票数 1

我有一台UIPopovercontroller。用这种方式来呈现它。

代码语言:javascript
运行
复制
BackupPop *backupPop = [[BackupPop alloc] initWithNibName:nil bundle:[NSBundle mainBundle]];
backupPop.delegate = self;

backupPop.navigationItem.title = [Language get2:@"Backup"];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:backupPop];
assigningBackupRow = button.tag;
backupPopController = [[UIPopoverController alloc] initWithContentViewController:navController];
backupPopController.popoverContentSize = CGSizeMake(200, 150);
CGRect rect = CGRectMake(button.frame.origin.x, button.frame.origin.y + 20 + (button.tag - 30000) * 44, button.frame.size.width, button.frame.size.height);
[backupPopController presentPopoverFromRect:rect inView:backupTable permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];

在UIPopovercontroller中,我在viewdidload中有一个UITableView。

代码语言:javascript
运行
复制
funcTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 200, 80) style:UITableViewStylePlain];
[funcTable setDelegate:self];
[funcTable setDataSource:self];
[funcTable setRowHeight:44];
[funcTable setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:funcTable];

iOS8的问题是,虽然我的UITableView的高度是80px,但它只显示为40px。UITableView的起始位置是正确的,但高度不正确。现在,我必须将UIPopoverController中的所有UITableView的高度设置为120px。在iOS7中没有这样的问题。伙计们,有什么想法吗?谢谢。

EN

回答 3

Stack Overflow用户

发布于 2014-09-27 02:16:18

尝尝这个

iOS 8有一个名为UIPopoverPresentationController的新PopOverController

UIStoryboard *storyboard = UIStoryboard storyboard instantiateViewControllerWithIdentifier:@"Terms_NC";:@“Main”捆绑包:nil;UINavigationController *navController =storyboard storyboard

代码语言:javascript
运行
复制
 navController.preferredContentSize = CGSizeMake(300, 290);

// Present the view controller using the popover style.
navController.modalPresentationStyle = UIModalPresentationPopover;
[self presentViewController:navController animated: YES completion: nil];

// Get the popover presentation controller and configure it.
UIPopoverPresentationController *presentationController =
[navController popoverPresentationController];
presentationController.permittedArrowDirections =0;
presentationController.sourceView = self.view;
presentationController.sourceRect = CGRectMake(100, 100, 300, 340);
票数 1
EN

Stack Overflow用户

发布于 2014-09-17 14:44:04

我也有同样的问题。我所做的就是在展示我的popover之前再次明确地设置了tableview的大小。

代码语言:javascript
运行
复制
[backupPop adjustFrame];
backupPopController.popoverContentSize = backupPop.view.frame.size;
[backupPopController presentPopoverFromRect:rect inView:backupTable permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];

您还可以在backupPop中添加方法

代码语言:javascript
运行
复制
- (void)adjustFrame {
    CGRect frame = self.view.frame;
    frame.size.height = 80
    frame.size.width = 200;
    self.view.frame = frame;
}

让我知道这是否有帮助。

票数 0
EN

Stack Overflow用户

发布于 2014-09-27 01:15:19

可能它的变通方法是在很小的延迟后设置内容大小。

dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(0.01 * NSEC_PER_SEC)),dispatch_get_main_queue(),^{ self.popoverController setPopoverContentSize:CGSizeMake(300,340)动画:是;});

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25822859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档