0
A
回答
0
你可以看看觸摸是否來自使用UITouch類型的手寫筆。現在
if (touch.type == UITouchTypeStylus) {
//its touch from Stylus.
}
,了滾動,你可以創建的UIScrollView的子類並實現TouchBegan方法
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
if (touch.type == UITouchTypeStylus) {
self.scrollEnabled = NO;
}
else
{
self.scrollEnabled = YES;
}
[super touchesBegan:touches withEvent:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
if (touch.type == UITouchTypeStylus) {
self.scrollEnabled = NO;
}
else
{
self.scrollEnabled = YES;
}
[super touchesMoved:touches withEvent:event];
}
//編輯 OR
子類的UIApplication:
@interface MyUIApplication : UIApplication
- (void)sendEvent:(UIEvent *)event {
[super sendEvent:event];
NSSet *allTouches = [event allTouches];
if ([allTouches count] > 0) {
/
UITouchPhase phase = ((UITouch *)[allTouches anyObject]).phase;
if (phase == UITouchPhaseBegan){
UITouch *touch = [allTouches anyObject];
if (touch.type == UITouchTypeStylus) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"DisableScroll" object:self];
}
else
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"EnableScroll" object:self];
}
}
}
}
@end
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, NSStringFromClass([MyUIApplication class]), NSStringFromClass([AppDelegate class]));
}
}
添加觀察員對於包含滾動視圖的類中的這些通知a nd啓用/禁用相應的滾動。
1
您可以在UIGestureRecognizer上設置allowedTouchTypes
屬性。
例如:
scrollView.panGestureRecognizer.allowedTouchTypes = [UITouchType.direct.rawValue as NSNumber]
相關問題
- 1. 在iPad上禁用水平滾動
- 2. 在iPad上禁用滾動功能
- 3. 如何禁用iPad webapp上的滾動?
- 4. 禁用慣性滾動iPad
- 5. 禁用滾動網頁iPad
- 6. Javascript/CSS禁用iPad上的Safari滾動頁面滾動結束?
- 7. 在ipad上使用bringSubviewToFront滾動型
- 8. 在主屏幕應用程序中禁用iPad上的滾動
- 9. 禁用地圖移動從筆觸
- 10. 如何在滾動時在iPad上隱藏(但不禁用)滾動條?
- 11. 如何禁用用戶在recyclerview(autoscroll)Android上觸摸或滾動?
- 12. 啓用Tableview滾動但禁用觸摸
- 13. 滾動iPad上
- 14. 使用System.Console.Write禁用滾動
- 15. Android - 滾動時禁用觸摸事件
- 16. 禁用聚焦觸發滾動的UICollectionView
- 17. jQTouch禁用滾動,啓用滾動,禁用滾動
- 18. Div在iPad上滾動
- 19. 在Ipad中觸摸滾動問題
- 20. 如何在禁用滾動的網站上啓用滾動?
- 21. 在WKWebView上禁用雙擊滾動
- 22. 禁用WebBrowser控件中的滾動
- 23. 禁用Ultrawingrd控件中的滾動條
- 24. 禁用觸摸設備上的jQuery滾動條插件?
- 25. 滾動SpriteNode使用觸摸
- 26. 使用libgdx觸摸滾動
- 27. 禁用向上滾動頁面上
- 28. 觸控板上的雙指滾動js
- 29. 在iPad上使用jqTouch功能啓動點擊/觸摸事件
- 30. 在iframe中禁用滾動
我已經嘗試過這一點,但由於某種原因滾動後觸發的touchesBegan啓動,以便在接下來的時間我摸施加scrollEnabled。 (第一次使用手寫筆滾動滾動時) – MoHaKa
此功能'scrollViewWillBeginDragging'(存在於UIScrollView委託中)在其他任何事情之前觸發(即使在'touchesBegan'之前)。如果在這一點上有任何方法可以獲得觸摸的類型,我認爲它應該起作用。 – MoHaKa
如果是這樣的話,你可以繼承UIApplication並且可以使用sendEvent方法。讓我在答案中添加更多細節。 – Darshana