【问题标题】:resizing UIPopoverController to fit UITableController调整 UIPopoverController 的大小以适应 UITableController
【发布时间】:2013-08-13 19:52:28
【问题描述】:

我有一个 UIPopOverController,里面有一个 UITableController。 我初始化了所有元素,想要呈现popOver,此时UITable不知道它的大小,所以我无法设置UIpopOver的大小

我也不确定在 UITable 知道它的大小之后我还可以在哪里设置 UIPopOver 的大小(我可以尝试在 cellForRowAtIndexPath 中破解它,但这很丑

有什么想法吗?

我尝试定义 didView* 方法,但它们都没有被调用,可能是因为视图位于弹出框内

谢谢

【问题讨论】:

    标签: ios uitableview uipopovercontroller


    【解决方案1】:

    在显示弹出框之前,请致电[table reloadData]。这将强制表格计算大小。然后只需使用[table contentSize]

    另外请注意,您可以自己计算表格的大小。如果您知道行/页眉/页脚的数据和高度,那么乘法和加法就很简单了。

    【讨论】:

    • 谢谢,效果很好,我还必须更改表格大小,或者确保它大于弹出框可以增长到的最大值
    【解决方案2】:

    我在互联网的某个地方找到了这段代码,我不确定在哪里或者我会给予信任。不过,它工作得很好(这是在 UITableViewController 子类中)。它将控制器的宽度设置为比表格中显示的最宽线稍宽(在我的情况下,这为披露指示器留出了空间)。

     self = [super initWithStyle:style];
        if (self)
        {
            sortOrders = @[@"Alphabetic",@"User-assigned",@"Randomized"];
            selectedSortOrder = @"Alphabetic";
            //
            //  compute the size of the popover based on maximum width and required height to accommodate all rows
            //
            int rowHeight = [self.tableView.delegate tableView:self.tableView heightForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
            int totalRowHeight = [sortOrders count] * rowHeight;
            CGFloat maxWidth = 0.0f;
            for (NSString *s in sortOrders)
            {
                CGSize labelSize = [s sizeWithFont:[UIFont systemFontOfSize:14.0f]];
                if (labelSize.width > maxWidth)
                    maxWidth = labelSize.width;
            }
            self.contentSizeForViewInPopover = CGSizeMake(maxWidth+50.0f, totalRowHeight);
            [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
        }
        return self;
    }
    

    【讨论】:

    • 对不起,我想我错过了上面问题的重点——我用来显示它的弹出框被调用如下: [[UIPopoverController alloc] initWithContentViewController:sortOverController];因此,弹出框的大小与内容相符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多