- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是一名新手程序员。已经晚上试图解决问题,但没有奏效。我正在尝试根据信息内容动态更改单元格的大小。以身作则,但我的程序启动死了。出现错误:
'Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[__NSDictionaryI sizeWithFont:constrainedToSize:lineBreakMode:]"
我做错了什么?这是我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] ;
}
NSDictionary *newsItem = [news objectAtIndex:indexPath.row];
cell.textLabel.text = [newsItem objectForKey:@"title"];
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = 0;
cell.detailTextLabel.text = [newsItem objectForKey:@"pubDate"];
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellText = [news objectAtIndex:indexPath.row];
UIFont *cellFont = [UIFont fontWithName:@"Helvetica-Bold" size:20.0f];
CGSize constraintSize = CGSizeMake(320.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont
constrainedToSize:constraintSize
lineBreakMode:UILineBreakModeWordWrap];
return labelSize.height + 20.0f;
}
最佳答案
您的 news
数组中似乎包含字典,而不是字符串。所以在 tableView:heightForRowAtIndexPath:
中你的 NSString* cellText
实际上是一个 NSDictionary*
。
您只需要在 objectAtIndex:
之后添加一个 objectForKey:
调用,如下所示:
NSString *cellText = [[news objectAtIndex:indexPath.row] objectForKey:@"title"];
关于ios - 由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因 : '-[__NSDictionaryI sizeWithFont:constrainedToSize:lineBreakMode:],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346879/
因此,在使用 NSString 的 -sizeWithFont 系列方法调用时,我似乎遇到了一些奇怪的行为,具体取决于我是否在 iPhone 模拟器上调用它或实际设备。 很简单,当 -sizeWith
我有以下代码: - (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexP
我有一些 uilabels,其中有一些令人烦恼的复杂定位代码。 如果我使用 sizeWithFont 根据文本调整它们的大小,在查找该大小时是否会考虑 autoshrink 属性? 最佳答案 查看:
伙计们。我有带有不同单元格的 UITableView,我有计算高度的代码。在一个项目中它运行完美,但在第二个项目中它返回高度等于 0。是什么原因造成的?我的代码: - (CGFloat)tableVi
我正在尝试根据内容的内容计算表格 View 中单元格的必要高度。这是在 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtInde
我正在尝试测量 NSString 的视觉大小,它考虑了我可以呈现的行数。但是, sizeWithFont 没有考虑 numberOfLines 属性?所以我的布局算法将所有内容定位在低于实际需要的位置
我有一个类,其工作是将文本解析为多个页面。我使用 sizeWithFont: 方法来识别一页何时结束而另一页何时开始。但不幸的是,由于需要解析的文本量相当大,整个操作需要在后台线程上执行(需要几秒钟才
每当文本中出现 & 时,获取高度似乎总是会失败。两个函数返回的值都小于实际高度: CGSize labelSize = [nameLabel.text sizeWithFont:nameLabel.f
我有一个 UITableView ,其中每个单元格都使用 Core Text 来绘制一些文本。在计算返回 heightForRow 的高度时,我使用 NSString sizeWithFont 来确定
我正在尝试确定 UILabel 中字符的精确位置,例如: (UILabel *)label.text = @"你好!"; 我想确定'o'的位置。我认为我可以使用 sizeWithFont 将所有前面的
我一直在插电,我需要使用sizeWithFont:方法正确排列我的布局,但是它似乎不适用于自定义字体。有没有办法让它工作,或者我可以使用另一种方法? 我对此很困惑。任何帮助表示赞赏。 最佳答案 siz
我只想使用 iPhone 系统字体,但我不知道该怎么调用它。 sizeWithFont:@"HelveticaNeue"给我一个错误的参数错误。 sizeWithFont:系统给我一个未初始化的变量错
我正在尝试使用 sizeWithFont 动态确定每行应在 TableView 中的大小,但由于某种原因它始终为 0.0。这是我的代码: - (CGFloat)labelHeight:(NSS
如果我试图找出字符串的宽度(以像素为单位) CGSize sz = [@"Test text to hilight without new line for testing" sizeWithFont
为什么整个单词的 sizeWithFont 会产生与其字母大小之和不同的结果? 以下是带和不带字距调整的文本示例: CGFloat fontSize = 36; UIFont *font = [UIF
我在我的应用中使用了 Georgia 和 Georgia-Bold 字体。因为它必须显示我从服务器下载的大量文本数据,所以我在应用程序的各个地方广泛使用 NSString 的方法 sizeWithFo
我想根据文本计算tableviewcell 的高度。我正在使用 CGSize userInputSize = [userLabel sizeWithFont:[UIFont fontWithName:
sizeWithFont 在多线程中崩溃,这是调试信息: 1 0x00a0df8e in icu::RuleBasedBreakIterator::handleNext 2 0x00a0daff in
如果我强制其框架高度足够高,我有一个 UILabel 可以正确地自动换行。但是,我希望它动态地找到合适的高度,而 sizeWithFont 方法并没有这样做;该方法只是在我的标签中创建了一行: CGS
方法(sizeWithFont: forWidth: lineBreakMode:)在 iOS 7.0 中被弃用。 但是我怎样才能做同样的事情,就像在 iOS 7.0 中下面的代码一样? CGSize
我是一名优秀的程序员,十分优秀!