【发布时间】:2012-03-29 07:53:14
【问题描述】:
更新 2:
长话短说,我对此很愚蠢(而且,在我的辩护中,我没有接受过适当的教育)。现在可以了。我的问题与最初的主题有点偏离,但那是因为我不了解我的应用程序中发生了什么。我想用最后一个(也是很小的)查询来结束这个问题:
我的 customCell.xib 中有两个标签。我希望其中一个(cell.label2)有时包含更长的文本段(2-3 行)。我知道让它完全适合的一种方法是设置 autoshrink 属性,但它会缩小到文本,以便它可以放在一行上。我想保留原始文本大小并扩大单元格的高度,使文本跨越多行而不是缩小它。
有没有办法做到这一点?
更新 1:
我根据下面的回复尝试了一些方法,但它们无济于事。我越来越相信我做的事情根本上是错误的,而你们只是想不到它,因为它是如此基本。所以让我们再试一次。我要稍微改一下名字,这样更容易记住。
问题似乎在于我无法为我的 customCell 创建任何IBOutlets 或IBActions。现在我有 3 个文件应该处理这个问题(DetailedDirectionViewCell.{h,m,xib},但 Interface Builder 不允许我从我的 UITableViewCell 对象中创建属性/出口/引用 - 任何地方。
我没有在此处复制代码,而是提供了一个包含指向我的代码链接的 PasteBin 条目。和以前一样,我删除了不太有趣的方法。如果你愿意,请看一下。 http://pastebin.com/p4eADhKQ
我也有 customCell.{h,m},但这些只是继承自 UITableViewCell 的新 Objective C 类文件。 customCell.xib 只是一个带有两个标签的单元格。
所以我真的有几个问题。
首先,使用自己的 .XIB 文件中包含的自定义 UITableViewCell 以编程方式生成 UITableView。我的 DirectionsViewController 类只是一个带有编程单元的UITableView。点击其中一个单元格需要呈现一个DetailedDirectionsViewController 表(以模态方式),其单元格设计位于DetailedDirectionsViewCell.xib 文件中。问题是,我无法从 nib 文件中为UITableViewCell 创建IBOutlet - 任何地方。拖动文件的所有者图标/插座不提供创建任何东西。经过 5 个小时的挣扎,这意味着我无法呈现我的详细视图。
第二个问题涉及向 DirectionsViewController 添加导航栏,但我们暂时先不管它。
以下是一些您可能会觉得有用的方法:
//inside DirectionsViewController
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)
{
DetailedDirectionsViewController *vc = [[DetailedDirectionsViewController alloc] initWithStyle:UITableViewStyleGrouped];
vc.instruction = [turnList objectAtIndexPath:indexPath.row];
[self.tabBarController presentModalViewController:vc animated:YES];
}
//inside DetailedDirectionsViewController
- (UITableViewCell *) tableView:(UITableView *) cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"directionsCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
[[NSBundle mainBundle] initWIthNibNamed:@"DetailedDirectionsViewCell" owner:nil options:nil];
cell = self.tableViewCell;
self.tableViewCell = nil;
}
//here I configure the custom cell
return cell;
}
我认为其余的方法并不重要,因为它们要么按预期工作,要么几乎是默认方法。
总结一下:
DirectionsViewController - 本质上是带有自定义单元格的UITableViewController。没有 .xib 文件
DetailedDirectionsViewController - 有关来自 DirectionsViewController 的条目的详细信息。这里的单元格应该来自一个 .XIB 文件,但这已经被破坏了。
DetailedDirectionsViewCell - 这是自定义单元格。我无法设置它的文件所有者。
【问题讨论】:
-
您是否在xib的身份检查器中设置了文件所有者的类别?
-
这是我做不到的。将文件的所有者/新引用出口拖到我的任何类对我没有任何作用。
标签: iphone objective-c ios xcode uitableview