2

我在故事板中创建了一个UIViewUIScrollView上面UIView会出现更多视图,例如标签、图像视图等UIScrollView

我想以编程方式将框架设置为 UIView。我试图以编程方式使用setFrame函数设置框架,但它不适用于UIViewwhich is inside UIScrollView

我见过类似的问题,但到处都以编程方式创建 UIView,但我想使用UIView在情节提要中创建的并希望将框架设置为。

有人可以建议我吗,我该怎么做?

谢谢。

编辑1:添加了代码

[myownview setFrame:CGRectMake(0, 50, 320, 110)];

myownview 是在 UIScrollView 里面添加的 UIView,上面的代码写在 viewDidLoad 方法里面。

编辑2:

 NSString userText = @"Some long text which is multiple lines";

 CGSize constraint = CGSizeMake(200, 90000.0f);

 // Get the size of the text given the CGSize we just made as a constraint
 CGSize size = [userText sizeWithFont:[UIFont fontWithName:@"HelveticaNeue" size:13] constrainedToSize:constraint lineBreakMode:NSLineBreakByWordWrapping];

 UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(20,20, size.width, size.height)];
[myLabel setLineBreakMode:NSLineBreakByWordWrapping];
[myLabel setNumberOfLines:0];
myLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:13];
[myscrollView addSubview:myLabel];

[myownview setFrame:CGRectMake(0, myLabel.frame.origin.y+myLabel.frame.size.height+10, 320, 110)];

我已经正确创建了 IBOutlets。

myscrollview frame is (0, 135, 320, 298) on storyborad

myownview frame is (0, 214, 320, 110) on storyborad inside myscrollview

我已将 contentsize 设置为 myscrollview,如下所示

myscrollView.contentSize =  CGSizeMake(320, 600);

现在想改变myownview的起源。

最重要的条件是 Autolayout 是"TRUE"

4

2 回答 2

2

将该视图从故事板导出到相应的课程。

参考创建的视图,例如:但这里不需要再次分配它。只需更改框架。

[self.newView setFrame:CGRectMake(0, 70, 320, 80)];

如果您正在设置导致超出滚动视图的框架,那么您将无法看到该视图。

视图只会在滚动视图区域中可见。

于 2013-09-04T05:52:42.190 回答
1

当 Autolayout 为 True 时,我通过以编程方式将 myownview 添加到滚动视图中解决了上述问题。

myownview = [[UIView alloc] initWithFrame:CGRectMake(0, myLabel.frame.origin.y+myLabel.frame.size.height+10, 320, 110);

[myscrollView addSubview:myownview];

myscrollView.contentSize =  CGSizeMake(320, myownview.frame.origin.y+myownview.frame.size.height+10);

否则,当 Autolayout 为 False 时,“eptdeveloper”和“preetam”提供的两个答案都是正确的。

于 2013-09-04T11:37:17.073 回答