菜鸟教程小白 发表于 2022-12-13 05:13:14

ios:自定义表格单元格中的按钮在滚动时没有响应


                                            <p><p>对不起,我的英语很差。我想在我的自定义表格单元中添加一些可点击的按钮,它工作正常,但是当我向下滚动表格时遇到问题。滚动后,上单元格中的按钮在我单击时将无响应。但是当我滚动回单元格的原始位置时,按钮再次响应。</p>

<p>我把这个</p>

<pre><code>;
</code></pre>

<p>在<code>cellForRowAtIndexPath</code>方法中;
<code>btnPressed</code> 在我向下滚动之前已被触发。但是 <code>btnPressed</code> 在我滚动出该单元格原始位置的边界后无法触发。</p>

<p>希望有人能理解我的问题,谢谢。
请告诉我如何使按钮响应即使表格滚动?提前致谢</p>

<hr/>

<p><strong>方法一</strong></p>

<p>当我尝试 <code>cellForRowAtIndexPath</code> 中的方法 addtarget 并且编码是这样的</p>

<pre><code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

            static NSString *cellIdentifier = @&#34;CustomTableViewCell&#34;;
            CustomTableViewCell *cell = (CustomTableViewCell *);
            if (cell == nil) {
                NSArray *nib = [ loadNibNamed:cellIdentifier owner:self options:nil];
                cell = ;
            }
            [cell.btn addTarget:self action:@selector(btnPressed:)
            return cell;
}
</code></pre>

<hr/>

<p><strong>方法2</strong></p>

<p>我还尝试了另一种方法,它不在 <code>cellForRowAtIndexPath</code></p> 中添加目标

<p>这是我的委托(delegate)代码</p>

<p>在 customcell.h 中,我添加了这个</p>

<pre><code>@protocol CustomCellDelegate &lt;NSObject&gt;
- (void)didClickOnbtn;
@end
</code></pre>

<p>在 customcell.m 中,我添加了这个</p>

<pre><code>@interface CustomTableViewCell()
@property (nonatomic, strong) NSDictionary *currentDict;
@property (nonatomic,assign) id&lt;CustomCellDelegate&gt;delegate;
@end
</code></pre>

<p>和</p>

<pre><code>- (IBAction)didClickOnbtn:(id)sender {
    if (self.delegate &amp;&amp; ) {
      ;
    }
}
</code></pre>

<p>我已将自定义单元格委托(delegate)设置为 tableview</p>

<p>在 tabelviewController 中我也有方法 <code>didClickOnbtn</code> 和 <code><CustomCellDelegate></code></p>

<p>并且按钮可以在滚动表格之前触发tableview Controller 响应中的<code>didClickOnbtn</code>方法。</p>

<hr/>

<p>更新:
我在表格中创建了一个节标题 View 。我发现当我删除节标题 View 时,问题就解决了。虽然我不知道为什么节标题 View 会使按钮禁用,但它现在运行良好。希望能帮到和我一样情况的 friend 。</p>

<p>附言两种方法都有效。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我遇到了同样的问题。我使用解决方法来使用 Touch Down 而不是 Touch Up Inside。这不是一个完美的解决方案,而是一种解决方法,即使在滚动未完成时也会调用 IBAction for Touch Down。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios:自定义表格单元格中的按钮在滚动时没有响应,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/28272937/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/28272937/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios:自定义表格单元格中的按钮在滚动时没有响应