2011-02-12 75 views
2

導航欄與Web視圖一起滾動的Safari中的相同行爲。將導航欄剪輯爲滾動視圖

我試過有兩個滾動視圖。第一個滾動視圖是導航欄的容器,第二個滾動視圖的滾動指示器隱藏。它的工作原理(導航欄滾動) 幾乎像在Safari 導航欄,但這裏的問題:

  • 第二滾動視圖的滾動指示是隱藏的,即使我沒有設置該屬性showsScrollIndictorNO
  • 當我點擊狀態欄,它不滾動到第一滾動視圖(巢)
+0

嘗試設置滾動視圖的屬性ScrollToTop。 – Sabby 2011-02-22 05:06:03

回答

0

嘗試使導航控制器500的y值,看看是否可以滾動它的頂部。如果可以的話,那麼問題是它不會滾動到負範圍。

+0

該指標可以打開或關閉。據我所知,沒有辦法。 [tableView setShowsHorizo​​ntalScrollIndicator:NO]; [tableView setShowsVerticalScrollIndicator:NO];從這裏:http://stackoverflow.com/questions/821818/is-there-a-way-to-hide-the-scroll-indicators-in-an-uiscrollview – TigerCoding 2011-02-12 21:05:15

0

將您UIToolbar和你UIWebView在同一UIScrollView

+0

根據蘋果文件,我不能嵌入UIWebView到UIScrollView。我正在談論導航欄,您輸入網址或Google搜索的欄,而不是具有後退/前進按鈕的工具欄。 – Espresso 2011-02-16 23:03:56

+0

@Espresso如果您可以確保Web視圖的內容無法縮放或滾動(通過使用``標記並確保視圖足夠高),則可以使用'UIWebView` 「UIScrollView」內部工作得很好。您可以使用`stringByEvaluatingJavaScriptFromString:`和'clientHeight`在Web視圖委託中動態執行高度事務。當然,這是一個很大的問題。 – 2011-02-17 20:28:57

1

好吧,如果你不介意的黑客視圖樹,只需添加它作爲一個子視圖到的WebView滾動視圖,並推動一切下降。我想它在蘋果的UICatalog(WebViewController.m,而不是[self.view addSubview:urlField]),它似乎工作

UIScrollView * myScrollView; 
for (UIView * view in [myWebView subviews]) { 
    if ([view isKindOfClass:[UIScrollView class]]) { 
    myScrollView = (UIScrollView *) view; //probably first, but ya never know 
    } 
} 

for (UIView * view in [myScrollView subviews]) { 
    CGRect tempFrame = view.frame; 
    tempFrame.origin.y += kTextFieldHeight; 
    view.frame = tempFrame; 
} 
[myScrollView addSubview:urlField]; 

爲了使它更漂亮,你還需要更換「kTweenMargin」與在textFieldFrame 0並刪除webFrame調整:

webFrame.origin.y += kTopMargin + 5.0; 
    webFrame.size.height -= 40.0; 
+0

嗯。重新閱讀這個問題,看起來你只是使用Safari作爲例子,你實際上並不想要一個webview?這個示例原理不適用,只需將NavigationBar放在scrollView上?是不是想要水平滾動?然後,您可以實現UIScrollViewDelegate,並在發生滾動或縮放時調整NavBar的框架。 – mackworth 2011-02-17 21:29:46

1

顯然,這不是標準的行爲,這意味着哈克可能是唯一的出路。

您可以嘗試阻止除了滾動之外的任何交互操作的滾動視圖,而是將觸摸事件傳遞到UIWebView。在主控制器中執行此路由。

還可能發生的事情是,Safari沒有使用標準工具欄 - 它可能是Safari注入網頁代碼的一小段HTML。 UIWebView確實有一個loadHTML:或類似的方法; Apple可以簡單地將一些Javascript /圖像放入工具欄中。

最難的方法是檢測用戶在Web視圖中滾動的距離,然後將Web視圖向上移動並將工具欄從屏幕頂部移開相同的量,直到工具欄關閉,然後繼續正常滾動。