我有UITableview
uitableview containe播放列表音频歌曲,我在按钮中放了一个按钮。
用户点击行音频开始播放
我想,当用户点击行时,只有按钮才能启用,而单元格应该禁用
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSURL *url = [[NSURL alloc]initFileURLWithPath:soundsPath];
NSURL * playurl =[NSURL URLWithString:[passarray objectAtIndex:indexPath.row] relativeToURL:url];
if (indexPath.row ==1) {
buybtn.userInteractionEnabled=YES;
cell.contentView.userInteractionEnabled=YES;
buybtn.showsTouchWhenHighlighted=YES;
}
player = [[AVAudioPlayer alloc] initWithContentsOfURL:playurl error:nil];
[self.player play];
player.delegate = self;
cell =[tableView cellForRowAtIndexPath:indexPath];
cellText = cell.textLabel.text;
lbl.text=cellText;
}
答案 0 :(得分:0)
这可能有所帮助:在UITableView's
didSelectRowAtIndexPath:
方法
将tag
添加到specific
button
说99
然后
for(UIView *subview in cell.subView)
{
if(![subview isKindOfClass:[UIButton class])
{
subview.userInteractionEnabled = NO;
}
else
{
UIButton *btn = (UIButton *)subview;
if(btn.tag != 99)
btn.userInteractionEnabled = NO;
}
}
编辑:来自specific
button
的{{1}} enabled
为other
。
答案 1 :(得分:0)
方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
将标记分配给您需要访问的按钮:buybtn.tag = YOUR_TAG
然后在didselectrow方法中:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell =[tableView cellForRowAtIndexPath:indexPath];
NSLog(@"sunviews : %@",cell.subviews);
for (UIView *_view in cell.subviews) {
if (_view.tag != YOUR_TAG) {
[_view setUserInteractionEnabled:NO];
}
}
}
希望它对你有所帮助。
答案 2 :(得分:0)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if(indexPath.row == sepicificRowNumber){
buybtn.userInteractionEnabled=YES;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if(indexPath.row == sepicificRowNumber){
//Nothing happen on click
}
}
希望它有所帮助。