Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将UIScrollView添加到视图并将其发送到后面_Iphone_Objective C_Uiscrollview - Fatal编程技术网

Iphone 将UIScrollView添加到视图并将其发送到后面

Iphone 将UIScrollView添加到视图并将其发送到后面,iphone,objective-c,uiscrollview,Iphone,Objective C,Uiscrollview,我使用故事板(UILabel、UIImageView)添加了一些UI组件。我试图将UIScrollView置于此视图中,位于所有其他元素的下方: 这是我的代码,就在-viewwilldisease方法的末尾(来自我的视图控制器的代码): 我需要UIScrollView的原因是detailsLabel中有大量文本-我正在附加代码,用于以编程方式处理此标签: detailsLabel.text = @"Some long text taken from databse"; [deta

我使用故事板(UILabel、UIImageView)添加了一些UI组件。我试图将UIScrollView置于此视图中,位于所有其他元素的下方:

这是我的代码,就在
-viewwilldisease
方法的末尾(来自我的视图控制器的代码):

我需要
UIScrollView
的原因是
detailsLabel
中有大量文本-我正在附加代码,用于以编程方式处理此标签:

    detailsLabel.text = @"Some long text taken from databse";
    [detailsLabel sizeToFit];
    detailsLabel.numberOfLines = 0;
    detailsLabel.lineBreakMode = UILineBreakModeWordWrap;

我做错了什么?如何将UIScrollView放在主视图所有其他元素的下方?

将代码放在
ViewDidLoad
中。然后在将
UIScrollView
添加到
viewdiload
本身的self.View之后添加标签。因此,默认情况下,
UIScrollView
将添加到self.View上,然后添加到标签上。现在,您可以在scrollview或self.view上添加标签

将代码放入
ViewDidLoad
。然后在将
UIScrollView
添加到
viewdiload
本身的self.View之后添加标签。因此,默认情况下,
UIScrollView
将添加到self.View上,然后添加到标签上。现在,您可以在scrollview或self.view上添加标签

试试这个:

UIScrollView *scroll =  [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scroll.contentSize = CGSizeMake(320, 480);
scroll.showsVerticalScrollIndicator = YES;

[self.view insertSubview:scroll atIndex:0];

...

[self.view insertSubview:detailsLabel atIndex:1];
试试这个:

UIScrollView *scroll =  [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scroll.contentSize = CGSizeMake(320, 480);
scroll.showsVerticalScrollIndicator = YES;

[self.view insertSubview:scroll atIndex:0];

...

[self.view insertSubview:detailsLabel atIndex:1];

我按照中的说明操作,效果很好:我将Identity Inspector中的自定义类从UIView更改为UIScrollView,并将这一行添加到视图控制器文件中的my
-viewDidLoad

[(UIScrollView *)self.view setContentSize:CGSizeMake(320, 700)];

我按照中的说明操作,效果很好:我将Identity Inspector中的自定义类从UIView更改为UIScrollView,并将这一行添加到视图控制器文件中的my
-viewDidLoad

[(UIScrollView *)self.view setContentSize:CGSizeMake(320, 700)];
备选方案一:

在.h中声明detailsLabel:

IBOutlet UILabel * detailsLabel; // MAP IT WITH NIB or STORYBOARD
赋予它属性并以.m合成

在viewDidLoad中声明:

UIScrollView *scroll =  [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scroll.contentSize = CGSizeMake(320, 480);
scroll.showsVerticalScrollIndicator = YES;
[self.view addSubview:scroll];
[self.view sendSubviewToBack:scroll];

[scroll addSubview:detailsLabel];
//它应该会起作用

备选方案二:

如果要显示大量文本,则还可以使用UITextView,它具有内置的scrollview。您还可以设置其文本编辑属性。

选项一:

在.h中声明detailsLabel:

IBOutlet UILabel * detailsLabel; // MAP IT WITH NIB or STORYBOARD
赋予它属性并以.m合成

在viewDidLoad中声明:

UIScrollView *scroll =  [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scroll.contentSize = CGSizeMake(320, 480);
scroll.showsVerticalScrollIndicator = YES;
[self.view addSubview:scroll];
[self.view sendSubviewToBack:scroll];

[scroll addSubview:detailsLabel];
//它应该会起作用

备选方案二:

如果要显示大量文本,则还可以使用UITextView,它具有内置的scrollview。您还可以设置其文本编辑属性