簡體   English   中英

UIScrollView無法在iOS7的iPhone頂部屏幕中滾動

[英]UIScrollView not scroll in top screen of iPhone with iOS7

我在使用iOS 7的iPhone中使用UIScrollView時出現問題

我以編程方式創建了水平UIScrollView,我添加了一些彩色按鈕,最后我將滾動定位在屏幕頂部。

滾動是一個自定義滾動,所以我可以處理

- (BOOL)touchesShouldCancelInContentView:(UIView *)view {
  return YES;
}

scroll.canCancelContentTouches = YES;
scroll.delaysContentTouches = YES;

即使按下按鈕,也允許滾動移動

一切都很完美,除了屏幕頂部,滾動不動。 但我可以按下按鈕。 如果我放下滾動條(大約30px)我可以在它的上部滾動它(內容大小和框架是正確的)

我使用info.plist設置“查看基於控制器的狀態欄外觀= NO”刪除了iOS 7的狀態欄

似乎在狀態欄區域我無法拖動滾動。

有什么建議么?

在此輸入圖像描述

編輯:有趣的是,如果在滾動之前,您下拉了通知選項卡,那么滾動甚至在上部也可以工作。 當通知選項卡向上移動時,問題返回。 好像第一次觸摸是由選項卡管理而不是將其傳遞給滾動

是的,UIScrollView在純自動布局環境中發生了一些奇怪的事情。 第二十次重新閱讀iOS SDK 6.0發行說明我發現:

請注意,通過在視圖和滾動視圖子樹外部的視圖(例如滾動視圖的超級視圖)之間創建約束,可以使滾動視圖的子視圖顯示為浮動(不滾動)在其他滾動內容上。

將子視圖連接到外部視圖。 換句話說,對於嵌入了scrollview的視圖。

由於IB不允許我們在imageView和滾動視圖的子樹外部的視圖之間設置約束,例如滾動視圖的超視圖,然后我在代碼中完成了它。

- (void)viewDidLoad {
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
    [self.view removeConstraints:[self.view constraints]];
    [self.scrollView removeConstraints:[self.scrollView constraints]];
    [self.imageView removeConstraints:[self.imageView constraints]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[_scrollView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_scrollView)]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_scrollView]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_scrollView)]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[_imageView(700)]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_imageView)]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_imageView(1500)]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_imageView)]];
}

而且! 它充當魅力!

您的目標是iOS7還是早期版本? 如果它是iOS7並且您更改為iOS6.1並獲得預期的行為,則很可能是bug。

另一種方法是檢查同事已經建議的自動布局約束,當然還要觀察與之相關的contentFrame屬性。

暫無
暫無

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

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