【问题标题】:How to use scroll view on iPhone?如何在 iPhone 上使用滚动视图?
【发布时间】:2010-10-11 16:39:27
【问题描述】:

我想显示一个包含很多行的文本。我在滚动视图中添加了一个多行标签,但它没有显示任何内容。看起来这不是使用滚动视图的正确方法。如何使用滚动视图让用户可以向下拖动以查看更多文本?

【问题讨论】:

  • 我没有什么要补充的,但你的名字很棒。

标签: iphone objective-c cocoa-touch uikit uiscrollview


【解决方案1】:

您可以只使用 UITextView。它是 UIScrollView 的子视图,如果将它的 text 属性设置为超出其框架的文本量,则视图将变为可滚动的。

【讨论】:

    【解决方案2】:

    Apple 的UIScollView documentation 相当不错,你应该从那里开始并理解课程。

    将 Scrollview 视为屏幕在其上滑动的大视图表面*。您可以将子视图添加到滚动视图,然后滚动就像将屏幕定位在滚动视图上 - 屏幕就像一个窗口,您可以看到下面滚动视图的部分内容。

    为此,滚动视图比普通的 UIView 有一些额外的属性 - 但它在一个重要方面就像 UIView:它本身不直接呈现任何内容。您需要添加一个子视图来绘制您的文本。滚动视图的设置和显示方式与 UIView 完全相同 - 即您设置框架将其添加到另一个视图并显示您的文本,您需要将子视图添加到可以实际呈现文本的 UIScrollView。

    为了设置您请求的基本 UIScrollView,您应该像创建普通全屏视图一样创建它 - 将框架设置为与窗口相同的大小并将滚动视图作为子视图添加到窗口。然后制作一个大的 UITextView 来保存您的文本。 UIText 视图可以任意大——特别是它可以比屏幕大。将 UIScrollView 的 contentSize 属性设置为与 UITextView 的 frame 相同,然后将 UIText 视图添加为 UIScrollView 的子视图。

    完成此操作后,您可以使用 contentOffset 属性自动移动内容,控制缩放并设置委托来观察滚动事件。

    * 更准确地说,框架在其上滑动,但我假设您正在制作全屏 UIScrollView。如果你想要一个更小的视图,我相信你可以概括它。

    【讨论】:

      【解决方案3】:

      我以这种方式使用 UIScrollView 作为我的一个应用程序中的说明窗格。它有效,但我对结果不满意。然后我切换到使用 UIWebView 并且对结果更满意。它自动处理滚动视图的大小,我获得了 HTML 的所有格式化功能,并且我可以拥有指向其他信息(或外部站点)的链接,只需添加另一个 HTML 文件和一些委托代码。这是我使用的代码(我将 HTML 文件作为资源添加到我的应用程序中):

      NSString *path = [[NSBundle mainBundle] pathForResource:@"instructions" ofType:@"html"];
      NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];
      NSString *htmlString = [[NSString alloc] initWithData: [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding];
      [self.instructionsView loadHTMLString:htmlString baseURL:nil];
      

      【讨论】:

        【解决方案4】:

        你可以参考这个网站http://www.edumobile.org/iphone/iphone-programming-tutorials/scrollview-example-in-iphone/

        你按照步骤在iphone中制作滚动视图...祝你好运:)

        【讨论】:

        • 您似乎是 SO 的真正用户,而不是垃圾邮件发送者。因此,您为什么将相同的答案发布了三次,这有点令人费解。在受到处罚之前,您应该删除其中的几个重复项。
        • @APC 你说的受到了惩罚。我已经删除了;唯一的惩罚来自社区对她的回答投反对票。
        • @Will - 人们(曾经)也将她的答案标记为垃圾邮件。所以詹妮弗的泄漏代表有两种方式,虽然我猜她现在不会击中神奇的“六旗”,而现存的垃圾邮件旗将在两天后消失。
        • 很抱歉。只是我所在地区的网络不好。所以我没有意识到我已经发布了很多次相同的答案。我不是垃圾邮件发送者。:)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-04
        • 2021-12-21
        • 2011-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多