动态 UIPopoverController 大小?

Posted

技术标签:

【中文标题】动态 UIPopoverController 大小?【英文标题】:Dynamic UIPopoverController Size? 【发布时间】:2012-06-22 21:08:30 【问题描述】:

我的应用程序中有一个 UIPopoverController,它只是在彼此旁边显示两个 UILabel,每个 UIPopoverController 中都有一个单词列表。但是有时每个列表中只有几个单词,这意味着弹出视图中有大量空白。

我怎样才能使至少高度的弹出视图动态适应我的标签中有多少行单词?

任何帮助总是很感激,谢谢。

【问题讨论】:

【参考方案1】:

如果在弹出框显示之前指定标签中的文本,您可以使用viewDidLoad方法中的类似代码来实现:

- (void)viewDidLoad 
    [super viewDidLoad];

    // ...

    CGFloat height = [label.text sizeWithFont:label.font 
                                     forWidth:label.frame.size.width 
                                lineBreakMode:label.lineBreakMode].height;

    // This calculates only height of the label, you may want to add some margins, etc. 

    CGSize size = CGSizeMake(self.view.frame.size.width, height);
    self.contentSizeForViewInPopover = size;

【讨论】:

我可以看到它是如何工作的,但遗憾的是它不是。我的视野很窄。当我用单词填充我的标签时,我添加一个单词,然后用 \n 换行并一次又一次地等等。当你传递标签的文本值时,它可能不会检测到换行符吗? 据我所知,sizeWithFont:forWidth:lineBreakMode: 不尊重换行符。你应该试试sizeWithFont:constrainedToSize:

以上是关于动态 UIPopoverController 大小?的主要内容,如果未能解决你的问题,请参考以下文章

设置 UIPopOverController 大小

调整大小后调整 UIPopoverController 位置

UIPopoverController,如何改变它的大小呢?

如何避免手动设置 UIPopoverController 的大小?

使IPad的UIPopoverController等于屏幕大小

UIPopoverController 奇怪的调整大小行为