如何让这个应用程序屏幕滚动?

时间:2011-09-28 08:50:46

标签: iphone objective-c ios ios4 uiscrollview

我在应用程序中有一个屏幕,我编码的结构如下:

View
    ScrollView
        View
            label 1
            label 2
            label 3
        View
            UIImageView
        WebView

加载后,它会在Web视图中添加一些html字符串,因为整个内容(标签,图像,html内容)比屏幕高度更长,我想让屏幕在用户阅读时向下/向上滚动内容。这就是我添加SrollView但没有滚动的原因!

我也做过scroll_view.contentSize = [self.view bounds].size;,但它不起作用

关于如何做到这一点的任何想法?

提前帮忙,

的Stephane

3 个答案:

答案 0 :(得分:2)

默认 UIScrollView 设置 contentSize 等于其 frame 大小。如果您希望它可滚动,则必须显式设置 contentSize

scrollView.contentSize = CGSizeMake(_width, _height);

在创建滚动视图时,大多数情况下您不会知道实际的内容大小。添加 UIWebview 后,您可以分配 contentSize (因为Web视图是滚动视图中的最后一个视图)。你可以这样做,

// Add other views to scrollView
// Create and configure webView
[scrollView addSubview:webView];

float _width = scrollView.contentSize.width; // No change in width
float _height = CGRectGetMaxY(webView); // Returns (webView.frame.origin.y + webView.frame.size.height)
scrollView.contentSize = CGSizeMake(_width, _height);

答案 1 :(得分:1)

下面的代码你会在这里观察“高度”动态地声明你的要求

EXample :
if([Myarray  length]>25)
{

myString = [myString stringByAppendingFormat:@"<tr><th align=\"left\">%@</tr>",str_owes ];
height += 50;
}

  webview.frame=CGRectMake(25, 153, 420, height);
 [webview loadHTMLString:myString baseURL:nil]; 

scrollview.contentSize=CGSizeMake(0, webview.frame.origin.y+webview.frame.size.height+50);

答案 2 :(得分:0)

您需要将UIScrollView的{​​{1}}设置为两个视图+ UIWebView组合的大小。

您还需要确保contentSize if正确大小,然后关闭滚动,因为您可能会滚动问题(另一个滚动视图)。

更多信息:http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html