問(wèn)題:自定義的進(jìn)度條CustomProgressView在TaskSubmitViewController上滑動(dòng)時(shí)發(fā)生卡頓,原因是在TaskSubmitViewController中水平滑動(dòng)進(jìn)度條的時(shí)候,可能會(huì)上下滾動(dòng)該控制器上的tableView猴蹂,所以使進(jìn)度條產(chǎn)生卡頓丑念。
解決辦法:在自定義的進(jìn)度條CustomProgressView中定義一個(gè)全局變量parentView,在TaskSubmitViewController中把全局變量myTableView賦給parentView器虾,然后在CustomProgressView中對(duì)parentView進(jìn)行控制,當(dāng)進(jìn)度條滑動(dòng)時(shí)画畅,禁止myTableView滾動(dòng)蝙泼;當(dāng)當(dāng)進(jìn)度條滑動(dòng)時(shí)谣辞,允許myTableView滾動(dòng)迫摔。
屏幕快照 2016-01-21 下午4.33.49.png
//CustomProgressView.h文件
#import <UIKit/UIKit.h>
@interface CustomProgressView : UIView
//定義一個(gè)全局變量,接收傳遞過(guò)來(lái)的tableView
@property(nonatomic,strong) UIView *parentView;
@end
//CustomProgressView.m文件
#import "CustomProgressView.h"
#pragma mark - TouchEnevt
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
if([_parentView isKindOfClass:[UITableView class] ]){
((UITableView *)_parentView).scrollEnabled =false;
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
if([_parentView isKindOfClass:[UITableView class] ]){
((UITableView *)_parentView).scrollEnabled =true;
}
}
//tableView.m文件
#import "TaskSubmitViewController.h"
@property (weak, nonatomic) IBOutlet UITableView *MyTableView;
@interface TaskSubmitViewController ()<UITableViewDataSource,UITableViewDelegate,UITextViewDelegate>
......
CustomProgressView * customProgressView = [[CustomProgressView alloc]init];
customProgressView.parentView = _MyTableView;