久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

performSelector:withObject:afterDelay: 不能從 scrollViewDi

performSelector:withObject:afterDelay: not working from scrollViewDidZoom(performSelector:withObject:afterDelay: 不能從 scrollViewDidZoom 工作)
本文介紹了performSelector:withObject:afterDelay: 不能從 scrollViewDidZoom 工作的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我覺得我應該知道這一點,但我已經被難住了好幾個小時,而且我已經沒有想法了.

I feel like I should know this but I've been stumped for hours now and I've run out of ideas.

原理很簡單,用戶在滾動視圖中使用捏合來操作縮放和定位.如果他們在短時間內保持捏合,則滾動視圖會記錄縮放級別和內容偏移量.

The theory is simple, the user manipulates the zoom and positioning in a scrollview using a pinch. If they hold that pinch for a short period of time then the scrollview records the zoom level and content offsets.

所以我想我會在 scrollViewDidZoom 委托方法上啟動 performSelector:withObject:withDelay.如果它過期,那么我記錄設置.每次調用 scrollViewDidZoom 以及捏合手勢完成時,我都會刪除預定的調用.

So I thought I'd start a performSelector:withObject:withDelay on the scrollViewDidZoom delegate method. If it expires then I record the settings. I delete the scheduled call every time scrollViewDidZoom is called and when the pinch gesture finishes.

這就是我所擁有的:

- (void)scrollViewDidZoom:(UIScrollView *)scrollView{
    NSLog(@"resetting timer");
    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(positionLock) object:nil];

    [self performSelector:@selector(positionLock) withObject:nil afterDelay:0.4];               
}

-(void)positionLock{
    NSLog(@"position locked ");
}

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{

    NSLog(@"deleting timer");
    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(positionLock) object:nil];
}

這是輸出:

2010-05-19 22:43:01.931 重置計時器
2010-05-19 22:43:01.964 重置計時器
2010-05-19 22:43:02.231 重置計時器
2010-05-19 22:43:02.253 重置計時器
2010-05-19 22:43:02.269 重置計時器
2010-05-19 22:43:02.298 重置計時器
2010-05-19 22:43:05.399 刪除定時器

2010-05-19 22:43:01.931 resetting timer
2010-05-19 22:43:01.964 resetting timer
2010-05-19 22:43:02.231 resetting timer
2010-05-19 22:43:02.253 resetting timer
2010-05-19 22:43:02.269 resetting timer
2010-05-19 22:43:02.298 resetting timer
2010-05-19 22:43:05.399 deleting timer

正如您所見,最后一個事件和倒數第二個事件之間的延遲應該足以執行延遲的選擇器調用.

As you can see the delay between the last and second last events should have been more than enough for the delayed selector call to execute.

如果我用普通的舊 performSelector 替換 performSelector:withObject:withDelay: 我得到這個:

If I replace performSelector:withObject:withDelay with plain old performSelector: I get this:

2010-05-19 23:08:30.333 重置計時器
2010-05-19 23:08:30.333 位置鎖定
2010-05-19 23:08:30.366 重置計時器
2010-05-19 23:08:30.367 位置鎖定
2010-05-19 23:08:30.688 刪除定時器

2010-05-19 23:08:30.333 resetting timer
2010-05-19 23:08:30.333 position locked
2010-05-19 23:08:30.366 resetting timer
2010-05-19 23:08:30.367 position locked
2010-05-19 23:08:30.688 deleting timer

這不是我想要的,但它表明只是延遲導致它無法運行,與未在標題中聲明的選擇器、拼寫錯誤或任何其他原因無關.

Which isn't what I want but serves to show that it's only the delay that's causing it to not function, not something to do with the selector not being declared in the header, being misspelt or any other reason.

關于它為什么不起作用的任何想法?

Any ideas as to why it's not working?

推薦答案

我認為在跟蹤過程中會忽略計時器事件(當手指向下滾動或縮放時).您可能必須以不同的模式執行選擇器(請參閱 [NSObject performSelector:withObject:afterDelay:inModes:]).具體來說,嘗試使用 @[NSRunLoopCommonModes] 作為模式.

I think that timer events are ignored during tracking (when a finger is down in order to scroll or zoom). You might have to perform the selector in a different mode (see [NSObject performSelector:withObject:afterDelay:inModes:]). Specifically, try using @[NSRunLoopCommonModes] for the mode.

這篇關于performSelector:withObject:afterDelay: 不能從 scrollViewDidZoom 工作的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

how to set scrollview content size in swift 3.0(如何在 swift 3.0 中設置滾動視圖內容大小)
Stop a UITableView from automatically scrolling(阻止 UITableView 自動滾動)
iOS UIScrollView Lazy Loading(iOS UIScrollView 延遲加載)
using iOS 6.0 SDK and building for iOS 5 Target causes UIScrollView setMinimumZoomScale to fail when running on iOS 5 simulator(在 iOS 5 模擬器上運行時,使用 iOS 6.0 SDK 并為 iOS 5 Target 構建會導致 UIScrollView setMinimumZ
Create partial-screen UIPageViewController programmatically(以編程方式創建部分屏幕 UIPageViewController)
how to make an ImageView zoomable with or without ScrollView.?(如何使用或不使用 ScrollView 使 ImageView 可縮放?)
主站蜘蛛池模板: 在线不卡视频 | 中文字幕不卡视频在线观看 | gav成人免费播放视频 | 日本一区不卡 | 四虎av电影 | 国产精品久久影院 | 精品一区二区在线观看 | 黑人巨大精品 | 91免费视频观看 | 日韩电影免费在线观看中文字幕 | 成人av一区二区三区 | 一级全黄少妇性色生活免费看 | 超碰在线免费公开 | 国产精品99久久久久久宅男 | 日韩毛片在线视频 | 一区二区三区免费在线观看 | 51ⅴ精品国产91久久久久久 | 久久久久国色av免费观看性色 | 国产日韩一区二区三区 | 97精品超碰一区二区三区 | 国产精品18毛片一区二区 | 婷婷在线免费 | 国产精品中文字幕在线播放 | .国产精品成人自产拍在线观看6 | 日韩手机在线看片 | 红桃视频一区二区三区免费 | 一区二区在线不卡 | 日本色综合| 最新日韩欧美 | 国产欧美一区二区三区在线看 | 嫩呦国产一区二区三区av | 中文字字幕一区二区三区四区五区 | 日本超碰在线 | 亚洲精品乱码久久久久久黑人 | 久热精品免费 | 国产探花在线精品一区二区 | 黄一区二区三区 | 欧美极品一区二区 | 精品少妇一区二区三区在线播放 | 产真a观专区 | 国产精品亚洲第一 |