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. 使用筆控制滾動查看器並禁用觸摸
- 2. 在iPad上禁用水平滾動
- 3. 在iPad上禁用滾動功能
- 4. 禁用iPad上的水平滾動條
- 5. 如何禁用iPad webapp上的滾動?
- 6. 禁用慣性滾動iPad
- 7. 禁用iPad橫向滾動
- 8. 禁用滾動網頁iPad
- 9. 「在Apple MBP多點觸控板上禁用水平滾動」
- 10. Javascript/CSS禁用iPad上的Safari滾動頁面滾動結束?
- 11. 在ipad上使用bringSubviewToFront滾動型
- 12. 在主屏幕應用程序中禁用iPad上的滾動
- 13. 禁用地圖移動從筆觸
- 14. 如何在滾動時在iPad上隱藏(但不禁用)滾動條?
- 15. 在xterm.js中禁用觸摸滾動
- 16. 如何在iPad上的UIScrollView中禁用水平滾動?
- 17. UIScrollView視圖在iPad上使用視頻滾動查看滾動
- 18. iPad上的觸摸滾動增量值
- 19. 如何禁用用戶在recyclerview(autoscroll)Android上觸摸或滾動?
- 20. 在多點觸控時禁用UIScrollView中的滾動
- 21. 啓用Tableview滾動但禁用觸摸
- 22. 滾動iPad上
- 23. iPad禁用文檔滾動但不是div溢出滾動
- 24. 在移動設備上禁用滾動
- 25. 如何禁用iPad上的模態蒙版後面的滾動?
- 26. 使用System.Console.Write禁用滾動
- 27. Android - 滾動時禁用觸摸事件
- 28. 禁用listview滾動ontouchlistener時觸發
- 29. 禁用聚焦觸發滾動的UICollectionView
- 30. 禁用自動切換滾動條位置(禁用滾動到主動控制)
我已經嘗試過這一點,但由於某種原因滾動後觸發的touchesBegan啓動,以便在接下來的時間我摸施加scrollEnabled。 (第一次使用手寫筆滾動滾動時) – MoHaKa
此功能'scrollViewWillBeginDragging'(存在於UIScrollView委託中)在其他任何事情之前觸發(即使在'touchesBegan'之前)。如果在這一點上有任何方法可以獲得觸摸的類型,我認爲它應該起作用。 – MoHaKa
如果是這樣的話,你可以繼承UIApplication並且可以使用sendEvent方法。讓我在答案中添加更多細節。 – Darshana