如何在 Today Extension 中调整 UITableView 的大小

Posted

技术标签:

【中文标题】如何在 Today Extension 中调整 UITableView 的大小【英文标题】:How to resize UITableView in Today Extension 【发布时间】:2014-09-14 09:28:05 【问题描述】:

我正在为 iPhone 和 iPad 构建 Today Extension,但我遇到的问题是我无法为 iPad 和 iPhone 使用不同的 Storyboard。

我可以使用

调整扩展视图的宽度
if isIpad() 
    width = 550
 else 
    width = 275

preferredContentSize = CGSizeMake(width, 200)

但我无法使用此代码调整 tableViews 框架的大小

tableView.frame = view.frame

在上面的代码之后。

有人知道如何制作通用的今日扩展吗?

【问题讨论】:

【参考方案1】:

您可以使用 UITableViewController 或使用 autoLayout 将 tableView 固定到容器。在这两种情况下,宽度都会自动调整。

对于小部件的高度,使用如下内容:(self.rows 应该是包含行的 NSArray)

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

    if (self.rows) 
        CGSize size = self.preferredContentSize;
        size.height = self.rows.count * 44.0f;
        self.preferredContentSize = size;

        return self.rows.count;
    
    return 0;

【讨论】:

谢谢。我现在正在使用 UITableViewController。这成功了:) 并自动调整内容大小以适合我正在使用的 tableView preferredContentSize = tableView.contentSize 有没有办法考虑到自调整单元格和动态类型?

以上是关于如何在 Today Extension 中调整 UITableView 的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Today Extension 中显示资产目录中的图像?

如何通过 Today Extension (iOS 8) 访问 Core Data/CloudKit

如何将数据从应用程序显示到Today Extension Swift

iOS 8 Today Extension:是否可以添加可编辑的文本字段?

iOS扩展Extension之Today

iOS Today Extension 能否从应用的 Info.plist 中读取 URL 方案