簡體   English   中英

使滾動條在UIScrollView(iOS7)上始終可見?

[英]Make scrollbar always visible on UIScrollView (iOS7)?

是否可以使UIScrollView指示器始終在iOS7中顯示? 不僅在滾動時!

我已經搜索過,無法找到使其工作的方法。

我已經嘗試過下面的代碼,但在iOS7上不起作用

#define noDisableVerticalScrollTag 836913
#define noDisableHorizontalScrollTag 836914

@implementation UIImageView (ForScrollView) 

- (void) setAlpha:(float)alpha {

    if (self.superview.tag == noDisableVerticalScrollTag) {
        if (alpha == 0 && self.autoresizingMask == UIViewAutoresizingFlexibleLeftMargin) {
            if (self.frame.size.width < 10 && self.frame.size.height > self.frame.size.width) {
                UIScrollView *sc = (UIScrollView*)self.superview;
                if (sc.frame.size.height < sc.contentSize.height) {
                    return;
                }
            }
        }
    }

    if (self.superview.tag == noDisableHorizontalScrollTag) {
        if (alpha == 0 && self.autoresizingMask == UIViewAutoresizingFlexibleTopMargin) {
            if (self.frame.size.height < 10 && self.frame.size.height < self.frame.size.width) {
                UIScrollView *sc = (UIScrollView*)self.superview;
                if (sc.frame.size.width < sc.contentSize.width) {
                    return;
                }
            }
        }
    }

    [super setAlpha:alpha];
}

@end

您發布的代碼似乎是覆蓋UIImageView setAlpha的類別,並檢查視圖的標記以查看其是否與UIScrollView指示條的預期標記匹配。 這真的很hacky。 您所依賴的標記保持不變(它們始終不會那樣),並且指示條是UIImageView對象(它們現在可能是,但您不能保證在將來的iOS版本中會做到這一點)。

您無法將UIScrollView的滾動條指示器設置為永久打開-API不支持此功能。 如果您真的想這樣做,而不是嘗試弄亂滾動視圖的基礎體系結構,那么最好實現自己的指標。

這應該不太困難,因為您知道滾動視圖中內容的大小,並且還可以獲得偏移量,因此只需創建兩個指標視圖並根據需要移動它們即可(我說“太困難”-這並不容易,但這是比您發布的代碼稍微優雅的解決方案)。

暫無
暫無

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

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