我想知道是否正在拖动一个单元格(当UITableView处于编辑模式时,通过右侧的夹点)。我希望在它处于该状态时更改背景。
答案 0 :(得分:0)
我不知道框架中是否可行。但如果不是,你可以尝试在UITableViewCell子类中覆盖touchMoved方法吗?
然后,您可以在UItableViewCell的自定义子类中检索tableView的状态(编辑与否)。
答案 1 :(得分:0)
有可能,是的!
在ViewController.h中
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UIScrollViewDelegate>
{
IBOutlet UITableView * myTable;
IBOutlet UIScrollView * myScroll;
}
在ViewController.m中
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
myScroll = myTable;
myScroll.delegate = self;
}
#pragma Mark UIScrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"%f",scrollView.contentOffset.y);
}
就是这样。
答案 2 :(得分:0)
遗憾的是没有回调,但由于默认行为是调整UITableViewCell的'alpha'值,您可以在UITableViewCell子类的' - (void)layoutSubview'中检查它。
- (void)layoutSubviews
{
[super layoutSubviews];
if (self.alpha < 0.99) {
// we are most likely being dragged
} else {
// restore for not being dragged
}
}
请注意,这有点像黑客。我注意到当表视图的separatorStyle设置为'UITableViewCellSeparatorStyleNone'时,这不起作用。
答案 3 :(得分:0)
可能是的!但是你必须在视图控制器中自己跟踪状态。定义一个成员 BOOL tableDrag = NO; 在方法中 scrollViewWillBeginDragging 你设置tableDrag = YES;并在方法中 scrollViewDidEndDragging 你设置tableDraw = NO;
现在,在scrollViewDidScroll委托方法中,您可以设置背景。
如果您有多个滚动条,则标记滚动视图,以便您知道正在拖动哪个。
希望它有所帮助!