菜鸟教程小白 发表于 2022-12-13 11:13:56

ios - 在 UITableView 中未调用 scrollviewDidEndDragging


                                            <p><p>我有一个 <code>UIViewController</code>,里面有一个 <code>UITableView</code>。我想使用 <code>UIScrollViewDelegate</code> 捕捉表格的滚动。表的委托(delegate)设置正确,因为我可以执行 <code>UITableView</code> 方法,但是在滚动时,方法 <code>scrollViewDidScroll</code> 被调用,但 <code>scrollViewDidEndDragging</code> 未被调用。我还实现了 <code>scrollViewWillEndDragging</code> 等,但只调用了 <code>scrollViewDidScroll</code>。所以想知道为什么不调用<code>scrollViewDidEndDragging</code>。</p>

<p><strong>编辑</strong></p>

<p>这里其实没什么,只是记录事件而已。</p>

<p><strong>这个叫</strong></p>

<pre><code>- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{

DDLogVerbose(@&#34;did scroll&#34;);

}
</code></pre>

<p><strong>这个不叫</strong></p>

<pre><code>- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    DDLogVerbose(@&#34;end drag&#34;);
}
</code></pre>

<p><strong>编辑</strong></p>

<p>好的,我尝试在我的 UItableview 子类中添加 scrollViewDidEndDragging,它是有效的。那么如何让我的viewcontroller 处理scrollViewDidEndDragging? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我创建了一个干净的项目并添加了一个 tableView 来测试它。以下是代码:</p>

<pre><code>@interface ViewController () &lt;UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate&gt;

@end

@implementation ViewController

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return [ initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    NSLog(@&#34;end drag&#34;);
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    NSLog(@&#34;end decelerating&#34;);
}

@end
</code></pre>

<p>这里是拖拽后的日志:</p>

<pre><code>2015-10-09 14:21:57.442 test end drag
2015-10-09 14:21:58.178 test end decelerating
</code></pre>

<p>所以这些方法被调用了。</p>

<p>您应该粘贴更多代码以帮助我们找到问题。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 UITableView 中未调用 scrollviewDidEndDragging,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/33029438/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/33029438/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 UITableView 中未调用 scrollviewDidEndDragging