在 IOS 中,對 UIScrollView 的捲軸(ScrollBar Indicators)的自訂設定介面,一直都是很少的。除了能自訂簡單的樣式(UIScrollViewIndicatorStyle)和是否啟用外,對於 一直顯示捲軸、自訂捲軸(ScrollBar Indicators)的Width 、顏色等,都是不能很方便的設定的。 雖然不能很方便,但是還是能實現的。通過一天的努力,不斷的 google 和 overflow,終於找到了幾個比較完美的解決辦法。
本文禁止任何網站轉載,嚴厲譴責那些蛀蟲們。
本文首發於,部落格園,請搜尋:部落格園 - 尋自己,查看原版文章
本文首發地址:UITableView 一直顯示捲軸(ScrollBar Indicators)、捲軸Width(寬度)、捲軸Color(顏色) - http://www.cnblogs.com/xunziji/p/3248850.html
下面先來一步步的分析:
1. 那些控制項可以設定捲軸(ScrollBar Indicators)
因為UIScrollView 是 UITableView 和 UITextView 的父類,所以可以設定的Controll: UIScrollView, UITableView, UITextView.
2. UIScrollView 的 - (void)flashScrollIndicators 方法
該方法是調用 object-c 方法顯示 UIScrollView 的捲軸(ScrollBar Indicators)。但是悲劇的是捲軸(ScrollBar Indicators) 只會顯示大概1.5秒左右的時間,就會自動隱藏。不過該方法還是有一定的應用情境,比如你認為只要在 UIScrollView Load 的時間,右側顯示2秒的捲軸就能起到提示作用,那這個方法剛好滿足你:[tableProdList reloadData]; if (tableProdList.contentSize.height > tableProdList.frame.size.height){ tableProdList flashScrollIndicators]; }
3. 捲軸(ScrollBar Indicators)是什麼東西、是如何顯示和隱藏掉的
UIScrollView 的 捲軸(ScrollBar Indicators),就是預設右側的 darkgray 條,當你滾動一個 UIScrollView 的時間,這個捲軸就會顯示,並且顯示和隱藏都是淡入和淡出的。這是,你或許就能猜到是什麼了:UIImageView. 捲軸就是一個UIImageView,那個捲軸就是一個圖片而已。而捲軸的消失、隱藏淡入淡出,都是設定的 UIImageView的 -(void) setAlpha 方法。
本文禁止任何網站轉載,嚴厲譴責那些蛀蟲們。
本文首發於,部落格園,請搜尋:部落格園 - 尋自己,查看原版文章
本文首發地址:UITableView 一直顯示捲軸(ScrollBar Indicators)、捲軸Width(寬度)、捲軸Color(顏色) - http://www.cnblogs.com/xunziji/p/3248850.html4. 讓捲軸一直顯示 的第一種方法(如果你要快速解決問題,請直接看最後一種更完美、更快速的解決辦法)
在 StackOverFlow 上找解決辦法的時候,很多問題的答案都指向這段代碼:
noDisableVerticalScrollTag 836913 noDisableHorizontalScrollTag 836914- () setAlpha:( (self.superview.tag == (alpha == && self.autoresizingMask == (self.frame.size.width < && self.frame.size.height >*sc = (UIScrollView* (sc.frame.size.height < (self.superview.tag == (alpha == && self.autoresizingMask == (self.frame.size.height < && self.frame.size.height <*sc = (UIScrollView* (sc.frame.size.width <
剛看到這段代碼的時間,我想:這什麼叼毛代碼,我要設定 UIScrollView , 你卻設定 UIImageView; 我要設定 ScrollBar Indicators,你卻設定 alpha。況且這段代碼要怎麼用,我靠,原文就貼出來了這段代碼,連解釋都沒有。結果害我走了好多彎路,豈不知,這段代碼就能很完美的解決。
首先要解釋下這段代碼,不然被其他苦逼的、熬夜的、加班的程式猿看到了,也不會用,我豈不是要被罵了?:
a. 這是一個 Category Objective-C提供了一個非常靈活的類(Class)擴充機制-類別(Category)。類別用於對一個已經存在的類添加方法(Methods)。你只需要知道這個類的公開介面,不需要知道類的原始碼。需要注意的是,類別不能為已存在的類添加執行個體變數(Instance Variables)。 所以這段代碼是繼承了 UIImageView 類,並重寫了 setAlpha 方法。關於如何把這段代碼添加到項目中,見:
prodDetailsTable.tag = ;
c. 要在 UIScrollView 資料繫結後,即載入完成後:flashScrollIndicators
本文禁止任何網站轉載,嚴厲譴責那些蛀蟲們。
本文首發於,部落格園,請搜尋:部落格園 - 尋自己,查看原版文章
本文首發地址:UITableView 一直顯示捲軸(ScrollBar Indicators)、捲軸Width(寬度)、捲軸Color(顏色) - http://www.cnblogs.com/xunziji/p/3248850.html