簡體   English   中英

檢查UIScrollVIew的contentOffset是否等於某個x值

[英]Check if a UIScrollVIew's contentOffset is equal to a certain x value

我在UICollectionViewCell中有一個UIScrollView,當UIScrollView滾動到某個-x值時,我試圖執行一個操作。

我試過了

CGPoint lastOffset;

if (lastOffset.x < -50 && scrollView.contentOffset.x >= -50) {
    // Animate the star
    NSLog(@"Animate");
}

但是問題在於它僅在scrollVIew返回其正常狀態時才被調用。

對於它的內容,我也嘗試過

if (scrollView.contentOffset.x >= -50) {
    // Animate the star
    NSLog(@"Animate");
}

但這並不總是被調用。

基本上,我要創建的內容類似於刷新的拉動,但是在scrollViews的x訪問權限上。

如果我要嘗試的另一個示例是iPhone的Tweetbot 3。 如果您在某個單元格上向右滑動,則可以選擇回復,加注星標等。

解決此問題的最佳方法是什么?

更新:我正在使用UICollectionViewCell。

滾動視圖的設置方式如下所示:

在此處輸入圖片說明

我正在嘗試做的是將裝訂線視圖引入:

在此處輸入圖片說明

當scrollView在x軸上達到-50時,動畫一個小星星。

之所以要放置此視圖並使animation處於scrollView內容邊界的負數部分,是為了使scrollView可以重新定位。

更新2:我知道了。 我會盡快接受我的回答。 感謝大家的投入!

我也有同樣的問題,這是我的解決方案。

1:將子視圖添加到滾動視圖中,而不是全屏顯示。 因為scrollview和tableview會調用touch事件(ps:U可以在touch事件中獲取觸摸對象)。 就像這樣:##標題## 在此處輸入圖片說明

2:U可以檢測用戶觸摸時間,例如> = 3s呼叫滾動視圖和另一個呼叫表視圖。 但這比方法要少。

關於Tweetbot3 U只需將uiview和uipangesturerecognizer添加到coustom tableview單元格中。 並嘗試此SWTableViewCell

您可以使用UIScrollViewDelegate方法 scrollViewDidScroll:在滾動期間獲取值scrollViewDidScroll:

self.scrollView.delegate = self;

-(void)scrollViewDidScroll:(UIScrollView*)scrollView {
    if (scrollView.contentOffset.x >= -50) {
        // Animate the star
        NSLog(@"Animate");
    }
}

請注意動畫,因為用戶可能會在contentOffset到50之間來回滾動,這可能會使動畫混亂,具體取決於您的設置方式。

if (lastOffset.x > -50 && scrollView.contentOffset.x <= -50) {
    // Animate the star
    NSLog(@"Animate");
}

我不是在檢查lastOffest.x是否大於-50,而是在檢查它是否小於-50。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM