ios – 如何删除UITableViewCell滑动以删除d跳

ios – 如何删除UITableViewCell滑动以删除d跳,第1张

概述iOS 7中新的“刷卡删除”外观增加了“反d”效果,UITableViewCell在滑动后继续偏移.有没有办法禁用此反d,以便一旦删除按钮完全可见,单元格会停止? 继续抵消的单元格: 即使拖动继续,我希望单元格停在此处: 我在我的cellForRowAtIndexPath:方法中尝试了这个,但似乎没有任何改变. for(UIView *subview in cell.subviews){ iOS 7中新的“刷卡删除”外观增加了“反d”效果,UItableVIEwCell在滑动后继续偏移.有没有办法禁用此反d,以便一旦删除按钮完全可见,单元格会停止?

继续抵消的单元格:

即使拖动继续,我希望单元格停在此处:

我在我的cellForRowAtIndexPath:方法中尝试了这个,但似乎没有任何改变.

for(UIVIEw *subvIEw in cell.subvIEws){    if([subvIEw isKindOfClass:[UIScrollVIEw class]]){        UIScrollVIEw *theScrollVIEw = (UIScrollVIEw *)subvIEw;        theScrollVIEw.bounces = NO;    }}
解决方法 我想我终于找到了解决方案!使用自定义单元格,您可以将该单元格设置为uiscrollviewdelegate并实现scrollVIEwDIDScroll:方法.在该方法中,您可以强制UIScrollVIEw的contentOffset保持在特定值(我使用82.0f,因为当“删除”按钮完全可见时,它似乎是contentOffset).像这样:

.H

@interface MyCustomCell : UItableVIEwCell <uiscrollviewdelegate>

.M

-(voID)awakeFromNib{    [super awakeFromNib];    for(UIVIEw *subvIEw in self.subvIEws){        if([subvIEw isKindOfClass:[UIScrollVIEw class]]){            UIScrollVIEw *theScrollVIEw = (UIScrollVIEw *)subvIEw;            theScrollVIEw.delegate = self;        }    }}#pragma mark - uiscrollviewdelegate-(voID)scrollVIEwDIDScroll:(UIScrollVIEw *)scrollVIEw{    static CGfloat kTargetoffset = 82.0f;     if(scrollVIEw.contentOffset.x >= kTargetoffset){        scrollVIEw.contentOffset = CGPointMake(kTargetoffset,0.0f);    }}

这也可以在不使用自定义单元格的情况下完成,只需将VIEwController设置为uiscrollviewdelegate并在tableVIEw中设置UIScrollVIEw的委托:cellForRowAtIndexPath,如下所示:

.H

MyVIEwController : UIVIEwController <UItableVIEwDataSource,UItableVIEwDelegate,uiscrollviewdelegate>

.M

- (UItableVIEwCell *)tableVIEw:(UItableVIEw *)tableVIEw cellForRowAtIndexPath:(NSIndexPath *)indexPath {    static Nsstring *cellIDentifIEr = @"Cell";    UItableVIEwCell *cell = [tableVIEw dequeueReusableCellWithIDentifIEr:cellIDentifIEr];    if(cell == nil) {        cell = [[UItableVIEwCell alloc] initWithStyle:UItableVIEwCellStyleSubTitle reuseIDentifIEr:cellIDentifIEr];    }    for(UIVIEw *subvIEw in cell.subvIEws){        if([subvIEw isKindOfClass:[UIScrollVIEw class]]){            UIScrollVIEw *theScrollVIEw = (UIScrollVIEw *)subvIEw;            theScrollVIEw.delegate = self;        }    }    return cell;}#pragma mark - uiscrollviewdelegate-(voID)scrollVIEwDIDScroll:(UIScrollVIEw *)scrollVIEw{    static CGfloat kTargetoffset = 82.0f;    if(scrollVIEw.contentOffset.x >= kTargetoffset){        scrollVIEw.contentOffset = CGPointMake(kTargetoffset,0.0f);    }}
总结

以上是内存溢出为你收集整理的ios – 如何删除UITableViewCell滑动以删除d跳全部内容,希望文章能够帮你解决ios – 如何删除UITableViewCell滑动以删除d跳所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1071768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存