我不明白为什么这很重要,但我在让它工作时遇到了一些麻烦。
免责声明:这是我的第一个 iOS 应用程序(或任何 Apple 开发,该应用程序需要昨天完成,所以请原谅任何匆忙的代码)。
当单击主视图导航控制器上的按钮时,我正在使用 SWRevealViewController 库创建 Facebook 式的“侧视图”。效果很好,喜欢。这个视图包含一个只有两个静态单元格的 UITableView,我刚刚收到一个请求,将一个单元格添加到视图的最底部。
尝试将第三个单元格“放入”UITableView 似乎并不明显,因此在我的 xib 中,我只是在 UITableView 之外创建了一个 UITableViewCell,并将其放在视图的底部。然后它使用标准的 IBOutlet 工作流将它连接到我的控制器。
回到我的 viewDidLoad 中,我将 rogue cell 蒙皮使其看起来像其余的 tablecells,添加了一些措辞,添加了一个处理程序以使其在单击时打开我公司的网站,所有这些工作正常。我为 tableView:cellForRowAtIndexPath 函数中的“常规”表格单元格做了所有这些事情。
但是由于某种原因,当我单击单元格时,当我单击它时,它并没有像其他常规单元格一样突出显示!为什么!
代码:
- (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];
} else {
[[cell.contentView viewWithTag:1] removeFromSuperview];
}
UILabel *lblView = [[UILabel alloc] initWithFrame:CGRectMake(20.0, 3.0, 187.0, cell.frame.size.height)];
[lblView setFont:[UIFont fontWithName:@"FuturaStd-Bold" size:12]];
lblView.textColor = [UIColor colorWithRed:(255/255.f) green:(241/255.f) blue:(204/255.f) alpha:1.0];
lblView.tag = 1;
if (indexPath.row == 0){
[lblView setText:@"SCHEDULE"];
} else if (indexPath.row == 1){
[lblView setText:@"SPEAKERS"];
}
lblView.backgroundColor=[UIColor clearColor];
[cell.contentView addSubview:lblView];
UIImageView *av = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 277, 58)];
av.backgroundColor = [UIColor clearColor];
av.opaque = NO;
av.image = [UIImage imageNamed:@"blackBar.png"];
cell.backgroundView = av;
UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor colorWithRed:(240/255.f) green:(145/255.f) blue:(62/255.f) alpha:1.0]];
[cell setSelectedBackgroundView:bgColorView];
return cell;
}
上面的代码适用于我的“常规单元格”。在我返回单元格之前的最后一点是在“被点击”时将背景突出显示为奇怪的橙色。
下面的代码是相同的,但在我的 viewDidLoad 中,它没有在单击时设置背景突出显示颜色。
- (void)viewDidLoad
{
[super viewDidLoad];
//... stuff
UILabel *lblView = [[UILabel alloc] initWithFrame:CGRectMake(20.0, 3.0, 187.0, _roguecell.frame.size.height)];
[lblView setFont:[UIFont fontWithName:@"FuturaStd-Bold" size:12]];
lblView.textColor = [UIColor colorWithRed:(255/255.f) green:(241/255.f) blue:(204/255.f) alpha:1.0];
[lblView setText:@"IT'S A SECRET LOL"];
lblView.backgroundColor=[UIColor clearColor];
[_roguecell.contentView addSubview:lblView];
UIImageView *av = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 277, 58)];
av.backgroundColor = [UIColor clearColor];
av.opaque = NO;
av.image = [UIImage imageNamed:@"blackBar.png"];
_roguecell.backgroundView = av;
UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor colorWithRed:(240/255.f) green:(145/255.f) blue:(62/255.f) alpha:1.0]];
[_roguecell setSelectedBackgroundView:bgColorView];
UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[_roguecell addGestureRecognizer:singleFingerTap];
}
也许它与我的 xib 文件有关,我的 UITableView 向下延伸了整个视图,而流氓 UITableViewCell “位于”它的顶部(但显然不在其中)。我试着弄乱桌子和单元格的位置,但这并没有做任何事情。
谢谢阅读。