我已经从 Storyboard的 UIScrollView
中创建了一个 UIView
,上面的 UIView
中还会出现更多 View ,例如标签、imageview 等UIScrollView
。
我想以编程方式将框架设置为 UIView。我尝试以编程方式使用 setFrame 函数设置框架,但它不适用于 UIScrollView
内的 UIView
。
我见过类似的问题,但到处都以编程方式创建 UIView,但我想使用 Storyboard中创建的 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)];
我已经正确创建了 IBOutlet。
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 的来源。
最重要的条件是自动布局为“TRUE”。
最佳答案
将该 View 从 Storyboard导出到相应的类。
引用创建的 View ,如下所示: 但这里不需要再次分配。只需更改框架即可。
[self.newView setFrame:CGRectMake(0, 70, 320, 80)];
如果您设置的框架导致 ScrollView 之外,那么您将无法看到该 View 。
View 仅在 ScrollView 区域中可见。
关于iphone - 将框架设置为 UIview,它是 UIScrollview 的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18606098/