91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ios7 中關于導航切換影響UIScrollView的問題

發布時間:2020-08-02 08:49:27 來源:網絡 閱讀:811 作者:dragon_cao 欄目:移動開發

在 iOS 7 中,如果某個 UIViewController 的 self.view 第一個子視圖是 UIScollView, 同時當這個 UIViewController 被 push 或 initWithRootController 成為 UINavigationController控制的Controller時,這個 UIViewController的 view 的子視圖 UIScollView 的所有子視圖, 都會被下移 64px。

   這個下移 64px 的前提是 navigationBar 和 statusBar 沒有隱藏。因為為 statusBar 默認的 Height 是 20px,而 navigatiBar  默認的 Height 是 44px。下面來比較一下

實例:

   不使用導航的界面跳轉

    1. 在 AppDelegate.m 文件中:

Obj-c代碼 ios7 中關于導航切換影響UIScrollView的問題
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  

  2. {  

  3.  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  

  4.  self.window.backgroundColor = [UIColor whiteColor];                                

  5.  //下面兩行為增加的代碼                                                          

  6.  ViewController *rootViewController = [[ViewController alloc] init];  

  7.  [self.window setRootViewController:rootViewController];  

  8.  [self.window makeKeyAndVisible];  

  9.    return YES;  

  10. }  



2. 在 ViewController.m 中:


Obj-c代碼 ios7 中關于導航切換影響UIScrollView的問題
  1. - (void)viewDidLoad  

  2. {  

  3. [super viewDidLoad];  

  4. UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(30.0,                                                           64.0, 260.0, 300.0)];  

  5. [scrollView setBackgroundColor:[UIColor redColor]];  

  6. UIView *view = [[UIView alloc] initWithFrame:scrollView.bounds];  

  7. [view setBackgroundColor:[UIColor blueColor]];  

  8. [scrollView addSubview:view];  

  9. [self.view addSubview:scrollView];  

  10. }  


3. 運行后的結果:

ios7 中關于導航切換影響UIScrollView的問題


這種情況下,scrollView并未受影響。


4. 現在使用 UINavigationController,  將開始 AppDelegate.m 增加的那兩行代碼修改成:  



Obj-c代碼 ios7 中關于導航切換影響UIScrollView的問題
  1. ViewController *rootViewController = [[ViewController alloc] init];  

  2.  UINavigationController *navController = [[UINavigationController alloc]  

  3.                                 initWithRootViewController:rootViewController];  

  4.  [self.window setRootViewController:navController];  




5. 現在再次運行程序:

ios7 中關于導航切換影響UIScrollView的問題


如結果顯示, scrollView 背景色為藍色的子視圖位置自動下移了。 而這個下移的距離剛好是 64.0px。


解決方法:

   第一種:在 ViewController 的 init 的方法中增加一行代碼:



Obj-c代碼 ios7 中關于導航切換影響UIScrollView的問題
  1. self.automaticallyAdjustsScrollViewInsets = NO;  



第二種: 讓UIScrollView 不要成為 ViewController 的 View 的第一個子視圖。具體操作:將 viewDidLoad方法 修改成如下:



Obj-c代碼 ios7 中關于導航切換影響UIScrollView的問題
  1. - (void)viewDidLoad  

  2. {  

  3. [super viewDidLoad];  

  4. UIView *firstSubView = [[UIView alloc] initWithFrame:self.view.bounds];  

  5. [self.view addSubview:firstSubView];  

  6. UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(30.0,                                                           64.0, 260.0, 300.0)];  

  7. [scrollView setBackgroundColor:[UIColor redColor]];  

  8. UIView *view = [[UIView alloc] initWithFrame:scrollView.bounds];  

  9. [view setBackgroundColor:[UIColor blueColor]];  

  10. [scrollView addSubview:view];  

  11. [self.view addSubview:scrollView];  

  12. }  


第三種:將 UIScorllView 的子視圖上移 64.0px 。修改 viewDidLoad 方法:



Obj-c代碼 ios7 中關于導航切換影響UIScrollView的問題
  1. UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(30.0,                                                           64.0, 260.0, 300.0)];  

  2. [scrollView setBackgroundColor:[UIColor redColor]];  

  3. CGRect viewFrame = CGRectMake(0, -64.0, CGRectGetWidth(scrollView.frame),  

  4.                                                                                   CGRectGetHeight(scrollView.frame));  

  5. UIView *view = [[UIView alloc] initWithFrame: viewFrame];  

  6. [view setBackgroundColor:[UIColor blueColor]];  

  7. [scrollView addSubview:view];  

  8. [self.view addSubview:scrollView];  


第四種:設置導航欄的透明屬性。

self.navigationController.navigationBar.translucent = YES

改變導航欄透明度,也會影響,這個可以根據自己的實際需求進行調整。d


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永城市| 上栗县| 新晃| 应城市| 永兴县| 法库县| 新绛县| 平凉市| 三门峡市| 海城市| 临澧县| 敦化市| 四平市| 增城市| 雅江县| 万全县| 南阳市| 合江县| 玉门市| 巴里| 会东县| 墨竹工卡县| 阿克苏市| 武清区| 武山县| 邯郸县| 同心县| 金沙县| 怀化市| 长春市| 略阳县| 民权县| 沁水县| 错那县| 丹阳市| 二手房| 泸溪县| 长治市| 竹溪县| 宽甸| 宁化县|