我创建了我用画我的UITableViewCell一个自定义的UITableViewCell类。一切都是正确绘制但是由于我把到我的UITableViewCell我一直与选择的电池问题的元素。
这是我的方法用于绘制的UITableViewCell这是我自定义的UITableViewCell
- (void)drawCell
{
nameString = [[UILabel alloc] init];
nameString.backgroundColor = [UIColor redColor];
nameString.frame = CGRectMake(15.0, 0.5, 70.0, 40.0);
nameString.text = [itemsDictionary objectForKey:@"Name"];
lastNameString = [[UILabel alloc] init];
lastNameString.backgroundColor = [UIColor clearColor];
lastNameString.frame = CGRectMake(105.0, 0.5, 95.0, 40.0);
lastNameString.text = [itemsDictionary objectForKey:@"LastName"];
addressString = [[UILabel alloc] init];
addressString.backgroundColor = [UIColor clearColor];
addressString.frame = CGRectMake(220.0, 10.5, addressString.frame.size.width, 50.0);
addressString.text = [NSString stringWithFormat:@"ISN %@: %@",[itemsDictionary objectForKey:@"AddNumber"] ,[itemsDictionary objectForKey:@"AddString"]];
[addressString sizeToFit];
// scrollcell has a dynamic scrollwidth depending on the sddressString but has a framesize of a normal UITableViewCell
scrollCell = [[UIScrollView alloc] init];
scrollCell.backgroundColor = [UIColor blueColor];
scrollCell.frame = CGRectMake(0.0, 0.0, ScreenWidth, 45.0);
[scrollCell setContentSize:(CGSizeMake((220.0 + addressString.frame.size.width)+15, 45.0))];
[scrollCell addSubview:nameString];
[scrollCell addSubview:lastNameString];
[scrollCell addSubview:addressString];
[[self contentView] addSubview:scrollCell];
}
正如你所看到的,我将覆盖我认为这是阻止的UITableViewCell代表选择方法在整个小区一个UIScrollView。
我怎样才能获得委托方法didSelectRowAtIndexPath方法来工作?
你已经添加了以下?
@implementation ViewController <UITableViewDelegate, UITableViewDataSource>
并设置委托自我?
self.tableview.delegate = self;
在小区一个UIScrollView总是会因为它拦截事件,是一个问题。如果可以的话,依靠事实表视图滚动,使细胞一样大,它需要显示的内容。
如果你必须有滚动视图那里你可能要在单元格的顶部添加视图,添加自己的手势识别器,并选择哪些事件会被发送到表视图,其中滚动视图。
退房this answer也 - 你可以发送的touchesBegan /移动/端至nextResponder也。
其中一个其他两个答案可能是正确的道路,但为了以防万一,如果你使用的是故事板赛格瑞那些将didSelectRowAtIndexPath方法前视SEGUE会发生什么,有可能是无关紧要让你有这么代码。