gpt4 book ai didi

iphone - 为什么我的按钮按不动?

转载 作者:行者123 更新时间:2023-12-03 20:10:47 27 4
gpt4 key购买 nike

我正在 UITableViewCells 内设置两个按钮。单元格本身不应该响应选择,而应该响应我的两个按钮。

这是有问题的代码:

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *ident = @"ResourceResultsCells";

ResourceResultsTableCell *cell = (ResourceResultsTableCell *)[tableView dequeueReusableCellWithIdentifier:ident];

if (!cell) {
NSArray *ary = [[NSBundle mainBundle] loadNibNamed:@"ResourceResultsTableCell" owner:nil options:nil];
for (id thing in ary) {
if ([thing isKindOfClass:[ResourceResultsTableCell class]]) {
cell = (ResourceResultsTableCell *)thing;
}
}

}

NSDictionary *listing = [self.listings objectAtIndex:indexPath.row];

cell.crewName.text = [listing objectForKey:@"ListingTitle"];
cell.cityState.text = [NSString stringWithFormat:@"%@, %@",
[listing objectForKey:@"City"],
[listing objectForKey:@"State"]];
cell.phone.text = [listing objectForKey:@"phone1"];
cell.email.text = [self safeListingOf:@"Email" from:listing];

UIImage *stretchy = [[UIImage imageNamed:@"grey_tab_stretchable.png"] stretchableImageWithLeftCapWidth:25 topCapHeight:0];
[cell.callButton setBackgroundImage:stretchy forState:UIControlStateNormal];
[cell.addToLightboxButton setBackgroundImage:stretchy forState:UIControlStateNormal];

cell.callButton.tag = indexPath.row;
cell.addToLightboxButton.tag = indexPath.row;

//here's where my trouble is....
[cell.callButton addTarget:self action:@selector(call:) forControlEvents:UIControlEventTouchUpInside];
[cell.addToLightboxButton addTarget:self action:@selector(addToLightbox:) forControlEvents:UIControlEventTouchUpInside];

cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}

-(void)call:(id)sender
{
UIButton *hit = (UIButton *)sender;
NSLog(@"call with id %d", hit.tag);
}

-(void)addToLightbox:(id)sender
{
UIButton *hit = (UIButton *)sender;
NSLog(@"lightbox with id %d", hit.tag);
}

从字面上看,这一切都很好,除了点击任何一个按钮都不会导致我的 NSLog 表明我们已经达到了我们的目标方法。也没有错误,只是没有消息。

显示的弹性图像告诉我,在我的自定义表格单元格的 Nib 中,我的 IB 连接良好。

这几乎就像另一个 View 位于它们之上,因此它们没有收到点击。但它们绝对是我的 xib 最后添加到 View 中的东西。毫无疑问。

编辑:黑客攻击仍在继续!!

我刚刚将以下代码添加到我的 UITableViewCell 子类中:

-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
if ([touches count] == 1) {
for (UITouch *theTap in touches) {
if (theTap.tapCount == 1) {
CGPoint coords = [theTap locationInView:self.contentView];

CGRect callButtonFrame = self.callButton.frame;
if (coords.x > callButtonFrame.origin.x && coords.x < (callButtonFrame.origin.x + callButtonFrame.size.width)
&& coords.y > callButtonFrame.origin.y && coords.y < (callButtonFrame.origin.y + callButtonFrame.size.height)) {
[self call:callButton];
}

CGRect boxButtonFrame = self.addToLightboxButton.frame;

if (coords.x > boxButtonFrame.origin.x && coords.x < (boxButtonFrame.origin.x + boxButtonFrame.size.width)
&& coords.y > boxButtonFrame.origin.y && coords.y < (boxButtonFrame.origin.y + boxButtonFrame.size.height)) {
[self addToLightbox:addToLightboxButton];
}
}
}
}
}

有趣的是,这有效。但奇怪的是我不得不像这样重新实现按钮接触检测代码。仍然不知道为什么我的按钮没有收到点击。我对这个解决方案不太满意。我想,如果找不到真正的问题,我愿意将其投入生产,但是……我并不是在要求任何在我之前有一百位 iPhone 开发人员没有做过的事情,我不认为.

最佳答案

有趣的问题。只是为了查看单元格是否正在捕获点击,然后将 NSLog 添加到 didselectrowatindexpath 方法中。

关于iphone - 为什么我的按钮按不动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3231996/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com