为什么我的UIScrollView水平滚动条没有显示?

时间:2013-08-08 11:56:32

标签: iphone ios objective-c

    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];

我使用此代码在运行时在UIView中添加UIScrollViewwidthheight参数来自用户运行时< / strong>但问题是:
如果widthheight的大小超过UIScrollView,那么它就不会显示水平滚动条。

为什么会这样?

3 个答案:

答案 0 :(得分:1)

尝试设置self.myscrollview.showsHorizontalScrollIndicator = YES

祝你好运!

答案 1 :(得分:1)

问题似乎在于contentSize的{​​{1}}。

scrollViewwidth增加时,您必须相应地更改height的{​​{1}}。

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

contentSize

如果您的scrollview只有scrollView.contentSize = CGSizeMake(width, height); ,则上述代码行必须在任何情况下都有效。 否则,您需要相应地设置contentSize以包含其他scrollview

答案 2 :(得分:0)

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

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;