Xcode preferredContentSize不会收缩
我使用UIPopoverController弹出一个窗口。我使用preferredContentSize设置大小。然后,我使用一个更大尺寸的新视图控制器。当子视图弹出时,我喜欢将窗口恢复到原始大小。但似乎不起作用 我已经将self.preferredContentSize=MyWindowsSize;但它似乎无法恢复Xcode preferredContentSize不会收缩,xcode,ios7,Xcode,Ios7,我使用UIPopoverController弹出一个窗口。我使用preferredContentSize设置大小。然后,我使用一个更大尺寸的新视图控制器。当子视图弹出时,我喜欢将窗口恢复到原始大小。但似乎不起作用 我已经将self.preferredContentSize=MyWindowsSize;但它似乎无法恢复 在iOS6或之前的版本中,我将ContentSizeForvieWinPover设置为CGSizeZero,然后设置适当的大小。但是在iOS7上,它会使弹出窗口消失。我能想到的唯一
在iOS6或之前的版本中,我将ContentSizeForvieWinPover设置为CGSizeZero,然后设置适当的大小。但是在iOS7上,它会使弹出窗口消失。我能想到的唯一解决方案是关闭您的弹出窗口,并自动以您想要的新大小再次显示它。我在iOS 8上也遇到了问题,因为它的内容大小在高度上不会缩小。宽度缩小了,但高度对我来说只能增加 看看 : 它可能会帮助您使用委托协议重新定位rect 解决方案: 好的,这是我的解决方案。在显示popover控制器的视图控制器中,可以设置一个名为“resetContentSize:(CGSize)size”的委托。e、 g.在演示视图控制器的头文件中:
@protocol PopoverDelegate <NSObject>
- (void)resetContentSize:(CGSize)size
@end
从popover控制器,可以在头文件中添加PopoOverdelegate
@property (nonatomic, weak) id<PopoverDelegate> popoverDelegate;
这为我解决了问题:
override func viewDidAppear(animated: Bool)
{
navigationController?.preferredContentSize = preferredContentSize
super.viewDidAppear(animated)
}
有同样的问题。我的解决方案是在navigationController上设置preferredContentSize,而不是
self
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.preferredContentSize = myControllerSize
}
override func viewDidAppear(animated: Bool)
{
navigationController?.preferredContentSize = preferredContentSize
super.viewDidAppear(animated)
}
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.preferredContentSize = myControllerSize
}