如何在iPhone上使用滚动视图?

9

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


4
我没有什么可补充的,但你的名字真棒。 - Patrick
4个回答

21

苹果公司的UIScrollView文档相当不错,你应该从那里开始并了解这个类。

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

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

为了设置基本的UIScrollView,您应该像正常的全屏视图一样创建它 - 将框架设置为与窗口大小相同,并将ScrollView添加到窗口作为子视图。然后创建一个大的UITextView来容纳您的文本。UITextView可以任意大 - 具体而言,它可以比屏幕更大。将UIScrollView的contentSize属性设置为UITextView的框架大小,然后将UITextView作为UIScrollView的子视图添加。

一旦您完成了这个工作,就可以使用contentOffset属性自动移动内容,控制缩放并设置委托以观察滚动事件。

* 更准确地说,它是在其上滑动的框架,但我假设您正在创建一个全屏UIScrollView。如果您想要一个较小的视图,我相信您可以推广它。


10

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


1
我在我的一个应用程序中使用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];

1

您似乎是一个真正的SO用户,而不是垃圾邮件发送者。所以你为什么要发布三次相同的答案还有点令人困惑。在受到惩罚之前,您应该删除其中几个重复的答案。 - APC
@APC 你说惩罚。我已经删除了;唯一的惩罚来自于社区对她的回答进行的投票。 - user1228
@Will - 人们(曾经)也将她的回答标记为垃圾邮件。所以,Jennifer的声望正在两个方面受损,尽管我猜她现在不会达到魔法的“六个标志”,而现有的垃圾邮件标志将在两天后消失。 - APC
非常抱歉。我所在区域的网络不太好,所以我没有意识到我已经多次发布了相同的答案。我不是垃圾邮件发送者。 :) - Susan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接