UIScrollView delaysContentTouches
1752 ワード
半年不動のコード製品は問題があると言っています.UIsliderのスライドが鈍いので、指を先に触って、押してからスライドすることができます.シーンは
プロジェクトでは
UItableViewおよびUIscrollViewのドキュメントを表示します.
delaysContentTouchesプロパティが見つかりました.デフォルトはYESで、NOに設定すると、touchesShouldBeginメソッドにすぐに応答します.の
ソリューション
その後、iOS 7ではまだ感度が悪いとテストされました.ふんふん?iOS 7 UITableViewCellのscrollViewもオンになっているので、cellを作成するときも、同じ手段で、
OK万事順調...
UISlider
がUITableViewCell
に追加された.プロジェクトでは
UISlider
を継承しているので、簡単な解決策ですが、プロジェクトでは、UIsliderを新たに生成し、何も処理しないUIView
に置きます.効果を見る.結果はスムーズでした.だから問題はUITableView
またはUITableViewCell
にあるに違いない.UItableViewおよびUIscrollViewのドキュメントを表示します.
@property(nonatomic) BOOL delaysContentTouches; // default is YES. if NO, we immediately call -touchesShouldBegin:withEvent:inContentView:. this has no effect on presses
delaysContentTouchesプロパティが見つかりました.デフォルトはYESで、NOに設定すると、touchesShouldBeginメソッドにすぐに応答します.の
ソリューション
_tableView.delaysContentTouches = NO;
[_tableView.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([obj isKindOfClass:[UIScrollView class]]) {
UIScrollView *_s = (UIScrollView *)obj;
_s.delaysContentTouches = NO;
}
}];
tableview
のすべてのdelaysContentTouches
メソッドを閉じます.その後、iOS 7ではまだ感度が悪いとテストされました.ふんふん?iOS 7 UITableViewCellのscrollViewもオンになっているので、cellを作成するときも、同じ手段で、
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self setup];
///#FIX iOS7
for (UIView *view in self.subviews) {
if([view isKindOfClass:[UIScrollView class]]) {
((UIScrollView *)view).delaysContentTouches = NO;
break;
}
}
}
return self;
}
OK万事順調...