ScrollView上新增pageView並加CollectionView
這個佈局困擾了我好幾天,因為要整個螢幕滑動,並且三個collectionView要能夠左右滑動,點選切換。
說到底還是基礎知識不太好,對scrollview的使用不是特別深入。
最後這個檢視我用到了PageViewController來控制三個子控制器,整個的介面是一個UIscrollView
檢視的切換按鈕需要自己自定義。並且和子控制器建立關聯。
其中處理滑動問題上我用了通知。因為子控制器和父控制器是兩個控制器,我感覺用通知比較方便。
在第三個子控制器上滑動方法上寫個通知,當向上滑動,或者向下滑動時,讓父控制器中的scrollview的contentOffset進行改變,從而達到整體滑動的效果。
```
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat y = scrollView.contentOffset.y;
NSLog(@"%f",y);
//通知
[[NSNotificationCenter defaultCenter] postNotificationName:@"scrollViewThree" object:nil userInfo:@{@"y":@(scrollView.contentOffset.y)}];
}
```
```
在父控制器的viewdidload中接收。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(threeVC:) name:@"scrollViewThree" object:nil];
```
```
//通知
- (void)threeVC:(NSNotification *)not
{
if ([not.userInfo[@"y"] floatValue] <= 0) {
[self.scrollView setContentOffset:CGPointMake(0, -64)];
} else {
if ([not.userInfo[@"y"] floatValue] > 240) {
return;
} else {
[self.scrollView setContentOffset:CGPointMake(0, [not.userInfo[@"y"] floatValue])];
}
}
}
```
```
最後再移除
//刪除通知
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"scrollViewThree" object:nil];
}
```
這樣整體就完成了。
相關文章
- 如何給TableView、CollectionView新增動效View
- 在同一個頁面中新增多個CollectionViewView
- Android自定義弧形[方形加弧形]IamgeView並新增高斯模糊AndroidView
- El-Upload元件上傳圖片並新增水印元件
- 16、Flutter Widget - PageView;FlutterView
- 圖文詳解ScrollView子控制元件約束新增View控制元件
- CollectionView 佈局收集View
- CollectionView 的異常View
- ScrollViewView
- 如何給Scrollview裡內容截圖並生成bitmap,注意:Scrollview裡面內容較多有滾動了·View
- iOS CollectionView 的那些事iOSView
- 一個CollectionView 選單View
- Flutter迴圈滑動的PageViewFlutterView
- IOS ScrollViewiOSView
- 新增磁碟並掛載磁碟
- solaris新增硬碟並掛載硬碟
- Oracle並行新增主鍵Oracle並行
- 自定義UICollectionViewLayout並新增UIDynamicUIView
- WWDC 2018 :CollectionView 之旅View
- ios的collectionView區頭設定iOSView
- collectionView不能呼叫didSelected方法View
- 更新TableView和CollectionView的狀態View
- fastadmin 資料記錄行上新增操作按鈕並設定許可權AST
- ScrollView 觸控事件View事件
- android listview and scrollviewAndroidView
- 簡單封裝分頁功能pageView.js封裝ViewJS
- 自動建立pid檔案,並加鎖
- iOS - 二級連動(tableview包含 collectionview)iOSView
- collectionView--編輯全選刪除View
- CollectionView 無限輪播設計思路View
- 給網站新增新浪微博“加關注”按鈕網站
- iOS 圖片上新增水印iOS
- Flutter: BottomNavigationBar + PageView 翻頁時崩潰FlutterNavigationView
- laravel 新增一條資料並返回 IDLaravel
- activiti 新增流程模型並返回 modelId模型
- JavaScript動態建立div並新增樣式JavaScript
- linux新增硬碟並編輯配額Linux硬碟
- CollectionView 單個選項卡的滑動View