iOS 8 Сегодня виджет не отображается при загрузке
Я создал простой виджет расписания, но когда я пытаюсь проверить его в симуляторе iOS, он говорит что-то вроде
Расписание [4012:108619] Не удалось унаследовать разрешения CoreMedia от 3965: (пусто)
И виджет не появляется. Вот мой код
#import "TodayViewController.h"
#import <NotificationCenter/NotificationCenter.h>
@interface TodayViewController () <NCWidgetProviding, UITableViewDataSource, UITableViewDelegate>
@end
@implementation TodayViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TableCell"];
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 7;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
// Perform any setup necessary in order to update the view.
// If an error is encountered, use NCUpdateResultFailed
// If there's no update required, use NCUpdateResultNoData
// If there's an update, use NCUpdateResultNewData
completionHandler(NCUpdateResultNewData);
}
@end
2 ответа
Это сообщение появляется постоянно с виджетами Today и обычно не указывает на то, что на самом деле что-то не так. Если вы не испытываете какую-то проблему, о которой не упоминали, просто игнорируйте ее.
Причина, по которой ваш виджет не отображается, но ваш код не говорит, сколько места вам нужно. Вам нужно установить self.preferredContentSize
, С представлениями таблицы в виджете вы обычно делаете что-то вроде:
self.preferredContentSize = CGSizeMake(self.preferredContentSize.width, self.objects.count * 44.0);
замещать self.objects
с любым массивом, который вы используете для данных таблицы, и замените 44 вашей высотой ячейки.
Ваш код использует 7 строк, что, вероятно, слишком много. См. Проблема в виджетах в ландшафтном режиме для обсуждения причин.
Версия Swift 4:
preferredContentSize = CGSize(width: preferredContentSize.width,
height: CGFloat(objects.count) * 44.0)