繁体   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