作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个工作正常的 TableView 。唯一的问题是当一个单元格被选中时,它会保持突出显示。所以,如果我点击一个单元格转到另一个 View 并点击导航栏上的后退按钮返回到表格 View ,我选择的单元格仍然突出显示。我该如何解决这个问题?
#import "SocialNetworks.h"
#import "Facebook.h"
#import "Twitter.h"
#import "YouTube.h"
#import "CustomCellBackground.h"
@interface SocialNetworks ()
@end
@implementation SocialNetworks
{
NSMutableArray *mbTableData;
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
mbTableData = [NSMutableArray arrayWithObjects:@"Facebook", @"Twitter", @"YouTube", nil];
self.title = @"Social Networks";
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [mbTableData count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *mbTableIdentifier = @"SimpleTableItem";
UIImageView *image = [[UIImageView alloc]init];
image.image = [UIImage imageNamed:@"CellImage.png"];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:mbTableIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:mbTableIdentifier];
cell.textLabel.font=[UIFont systemFontOfSize:16.0];
}
// cell.backgroundView = [[CustomCellBackground alloc] init];
// cell.selectedBackgroundView = [[CustomCellBackground alloc] init];
cell.textLabel.font = [UIFont fontWithName:@"FranklinGothicStd-ExtraCond" size:24.0];
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.textLabel.highlightedTextColor = [UIColor darkGrayColor];
cell.textLabel.textColor = [UIColor whiteColor];
cell.backgroundView = image;
NSLog(@"cell separator style: %d separator color: %@", tableView.separatorStyle, tableView.separatorColor);
cell.textLabel.text = [mbTableData objectAtIndex:indexPath.row];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0)
{
Facebook *facebook = [[Facebook alloc] initWithNibName:@"Facebook" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:facebook animated:YES];
}
else if (indexPath.row == 1)
{
Twitter *twitter = [[Twitter alloc] initWithNibName:@"Twitter" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:twitter animated:YES];
}
else if (indexPath.row == 2)
{
YouTube *youTube = [[YouTube alloc] initWithNibName:@"YouTube" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:youTube animated:YES];
}
}
@end
编辑:我在发布问题后就想通了。
[tableView deselectRowAtIndexPath:indexPath animated:YES];
最佳答案
在 didSelectRowAtIndexPath
中,您只需调用取消选择行
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
关于ios - 表格 View 单元格保持突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16656645/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!