【问题标题】:Why is my UIScrollView horizontal scroll bar not showing?为什么我的 UIScrollView 水平滚动条不显示?
【发布时间】:2013-08-08 11:56:31
【问题描述】:
    CGFloat width = textField.text.floatValue;
    CGFloat height = textField2.text.floatValue;
    CanvasView *canv = [[CanvasView alloc]     initWithFrame:CGRectMake((self.myscrollview.frame.size.width - width)/2, (self.myscrollview.frame.size.height - height)/2, width, height)];
    [canv setBackgroundColor:[UIColor whiteColor]];
    self.canvas = canv;
    [self.myscrollview addSubview:canv];

我正在使用此代码在运行时在UIScrollView 中添加UIView,并且widthheight 参数是在运行时从用户那里获取的,但问题是:
如果widthheight 大于UIScrollView 的大小,则它不会显示水平滚动条。

这是为什么?

【问题讨论】:

  • 嗨,请将滚动视图属性“showsHorizo​​ntalScrollIndicator”的值分配为“是”。它会帮助你。 self.myscrollview.showsHorizo​​ntalScrollIndicator = YES;
  • 很确定@Puneet 已经正确理解了这一点。请在您设置 contentSize 的位置发布代码。

标签: iphone ios objective-c


【解决方案1】:

问题似乎出在scrollViewcontentSize 上。

widthheight 增加时,您必须相应地更改UIScrollViewcontentSize

contentSize 定义了在 scrollview 上显示的可滚动内容的限制。

scrollView.contentSize = CGSizeMake(width, height);

如果在您的scrollview 中您只有UIView,那么上述代码行在任何情况下都必须有效。 否则,您需要相应地设置 contentSize 以包含其他 UIComponents

【讨论】:

    【解决方案2】:

    尝试设置self.myscrollview.showsHorizontalScrollIndicator = YES

    祝你好运!

    【讨论】:

    • 一种可能性是在添加新子视图后将所有滚动视图的子视图重新添加到滚动视图。我不确定它是否会起作用(因为我从未尝试过),但我读过它here,它可能对你有用。如果有帮助,请告诉我:)
    【解决方案3】:

    您必须将滚动视图框架设置为您想要的屏幕尺寸(即可见区域)。 只有您设置滚动视图内容大小。

    CGFloat width = textField.text.floatValue;
    CGFloat height = textField2.text.floatValue;
    self.myscrollview.frame=CGRectMake(0, 0, 768, 1004);
    CGSizeMake contentOffset;
    contentOffset = CGSizeMake(width, height);
    [self.myscrollview. setContentSize:contentOffset animated:NO];
    
    
    CanvasView *canv = [[CanvasView alloc]     initWithFrame:CGRectMake(0, 0, width, height)];
    [canv setBackgroundColor:[UIColor whiteColor]];
    self.canvas = canv;
    [self.myscrollview addSubview:canv];
    

    如果你想要滚动指示器,你可以使用

    self.myscrollview.showsHorizontalScrollIndicator = YES;
    

    【讨论】:

    • 添加此 sn-p 后,它没有显示添加的画布
    • 嘿,检查您的画布框架与内容大小不同... NSLog 您的框架和内容大小
    • 我打印显示宽度=768和高度=1004的框架大小,然后我将滚动视图的大小设置为与框架相同,然后在宽度和高度参数中我传递宽度=2000 和 height=200 但滚动视图仍然没有显示滚动
    • 嘿,滚动视图大小必须为 768X1004,在您传递值时设置滚动视图的内容大小。使用上面的代码..
    • 上面的代码不起作用,它没有显示添加的画布
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 2014-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    相关资源
    最近更新 更多