![](/img/trans.png)
[英]Is a UIScrollView’s contentOffset relative to contentInset
[英]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.