即使设置了contentSize,UIScrollView也不会滚动

时间:2010-07-15 16:11:31

标签: objective-c iphone uiscrollview

所以,我有一个只包含滚动视图的视图控制器。在viewDidLoad中,我从笔尖添加一个视图,但是当我这样做时,滚动停止工作。我添加的视图虽然有效,但我可以单击按钮,但有一半是屏幕外的。

@implementation JCEKScrollViewController_iPhone
@synthesize scrollView;
- (void)viewDidLoad {
    scrollView.backgroundColor = [UIColor redColor];
    scrollView.delegate = self;

    NSArray *nibParts = [[NSBundle mainBundle] loadNibNamed:@"JCEKKeyboard" 
                                                  owner:self 
                                                options:nil];
//first object is the view
    UIView *keyboard = [nibParts objectAtIndex:0];


    scrollView.contentSize = CGSizeMake(1000, 320);
    [scrollView setAutoresizesSubviews:YES];
    [scrollView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];

    [keyboard setAutoresizesSubviews:YES];
    [keyboard setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];


    [scrollView addSubview:keyboard];


}

由于

5 个答案:

答案 0 :(得分:1)

scrollView.contentSize = CGSizeMake(320, 1000);

针对

scrollView.contentSize = CGSizeMake(1000, 320);

答案 1 :(得分:0)

你确定没问题吗?

scrollView.contentSize = CGSizeMake(1000, 320);
[scrollView setAutoresizesSubviews:YES];
    [scrollView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight];

我通常会根据我添加的视图设置contentSize。

答案 2 :(得分:0)

我想你想做某事。比如[scrollView setDocumentView: yourContentViewToBeScrolled ]; ScrollView就像所有其他人一样。它将从A扩展到B ,自动调整或不自动...并且确实可以管理文档视图:http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/NSScrollViewGuide/Articles/Creating.html#//apple_ref/doc/uid/TP40003226-SW1

问候

答案 3 :(得分:0)

“这适用于iPhone,不存在任何文档视图” - 所以您没有任何要显示的内容?为什么要滚动一个空矩形? Apple说:“初始化NSScrollView实例后,您必须至少使用setDocumentView方法设置文档视图:...”。他们使用(清单1)[scrollView setDocumentView:theImageView];而theImageView还有一个NSImageView。没有像NSDocumentView那样的东西。 让我猜一句:你不使用“真正的”MVC模式。你正在做的是拥有一个VC-Object和一个Model,或者只是一个对象。对?如果是这样的话:你错过了“纯艺术”。 不,你不能一直分开这三个部分。可以将MVC模式的两个甚至全部三个部分组合在一起。但在此之前你应该做这些小步骤!了解这应该如何运作。在这里你将学习...... •模型只是为了将一个作业的所有数据放在一起。它有点(但根本不是)像某些文档文件(并且不是 .doc ),只是没有文件。 •视图只是一种(!)方式(可能是您唯一的方式,但可以根据您的需要或需要)显示您要显示的部分或全部数据 •控制器管理它们:它从模型中提取数据并将它们放回去;它保存视图并告诉他们,该做什么 - 并且可能从他们那里获取数据(一些被推送到一个模型或一些用于其他需求 - 这是一个逻辑或,“||”而不是xor ,人们在自然语言中使用!)

抱歉我的英语不好。我写这篇文章只是为了让你好奇。只需做一个“RTFM”,或者,在这种情况下,阅读开发者文档的相关部分。例如,http://developer.apple.com/iphone/library/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html可能是一个开始的地方!

问候

答案 4 :(得分:0)

抱歉,你写了“一个只包含滚动视图的视图控制器” - 我没有关注你的标签。 scrollEnabled是否设置为(默认值)YES? 并且:“滚动视图本身不显示绘图,除了显示垂直和水平滚动指示器。滚动视图必须知道内容视图的大小,以便它知道何时停止滚动;默认情况下,当滚动超出内容范围时,它会“反弹”。 管理滚动视图中显示的内容绘制的对象应该......“(http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html)。 - 你画杜?

也许您应该关注那里提到的示例代码?

问候