gpt4 book ai didi

iOS8 今天查看小部件不显示 UITableViewController

转载 作者:可可西里 更新时间:2023-11-01 05:04:23 27 4
gpt4 key购买 nike

我刚刚开始学习如何在 iOS8 上创建今日 View 小部件。我为扩展创建了一个新目标。下一步,我删除了默认的 viewcontroller 和类,并创建了一个新的 UITableViewController 及其相应的方法。我实现了以下内容:

#import "TableViewController.h"
#import <NotificationCenter/NotificationCenter.h>

@interface TableViewController () <NCWidgetProviding>
{
NSArray *nameArray;
}
@end

@implementation TableViewController

- (void)viewDidLoad {
[super viewDidLoad];

nameArray = [[NSArray alloc]initWithObjects:@"joey",@"jack",@"jill", nil];

}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 3;
}

- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {


completionHandler(NCUpdateResultNewData);
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

cell.textLabel.text = [nameArray objectAtIndex:indexPath.row];

return cell;
}

我还将表格大小更改为 freeform 并将其高度设置为 300px。但我得不到任何返回。小部件出现时是空的。

最佳答案

最可能的原因是您今天的扩展需要通过为 self.preferredContentSize 赋值来指定它的 UI 需要多少空间。在您的情况下,这是(表格行数)*(每行高度)的高度,宽度为通知中心给您的任何宽度。在您的 viewDidLoad 中,您需要这样的东西:

self.preferredContentSize = CGSizeMake(self.preferredContentSize.width, nameArray.count * 44.0);

假定单元格高度为 44,这在您的情况下看起来是正确的。

如果数组的大小发生变化,您需要为 preferredContentSize 分配一个新值。

关于iOS8 今天查看小部件不显示 UITableViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27076476/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com