我正在我的应用中实现一个简单的scrollview。但是,视图根本不会滚动。只有"传记"子视图在其自己的视图中滚动,而不是相对于父视图。下面是父视图的实现文件。
#import "ProfileViewController.h"
@interface ProfileViewController ()
@end
@implementation ProfileViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Profile";
self.tabBarItem.image = [UIImage imageNamed:@"tabbarviewimage"];
self.view.backgroundColor = [UIColor whiteColor];
self.scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
self.scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
self.scrollView.contentSize = CGSizeMake(320, 640);
UIImageView *myView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tabbarviewimage"]];
[myView setContentMode:UIViewContentModeScaleAspectFit];
myView.frame = CGRectMake(20, 20, 100, 114);
UILabel *nameLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 140, 280, 40)];
nameLabel.text = @"Name: Jon Doe";
UILabel *cityLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 200, 280, 40)];
cityLabel.text = @"From: Los Angeles";
UITextView *biography = [[UITextView alloc] initWithFrame:CGRectMake(12, 260, 300, 180)];
biography.font = [UIFont fontWithName:@"Helvetica" size:15];
biography.editable = NO;
biography.text = @"sample bio";
UILabel *memberSinceLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 600, 280, 40)];
memberSinceLabel.text = @" 2016";
[self.scrollView addSubview:myView];
[self.scrollView addSubview:nameLabel];
[self.scrollView addSubview:cityLabel];
[self.scrollView addSubview:biography];
[self.scrollView addSubview:memberSinceLabel];
[self.view addSubview:self.scrollView ];
}
@end
答案 0 :(得分:0)
你有UIScrollView
身高640并谈论那里的内容。
1。myView :
YPos = 20,高度 = 114,即高达134 Y点有myview。
nameLabel :
YPos = 140,高度 = 40即nameLabel
从 140 开始到 180 即可。 cityLabel :
YPos = 200,高度 = 40即cityLabel
从 200 到<强> 240 强>
biography :
YPos = 260,高度 = 180,即biography
从 260 到<强> 440 强>
现在,memberSinceLabel
从 600 开始,所以之间没有任何内容
440 至 600 。
memberSinceLabel
从 600 到 640 。
我已经讨论了scrollView
中每个组件的像素。
通过测量,您可以在scrollView
内精细地展开您的组件。
但是根据 Apple文档,UIScrollView
的滚动属性取决于内容大小,即如果scrollview的内容大小大于UIscrollview
大小那么只有这样scrollview在那个特定的方向滚动。
例如,UITextView
具有UIScrollView
的属性,但如果其内容大于UItextView
大小,那么只有您可以滚动内容,否则您无法滚动。
同样在这里开心,您的内容大小等于scrollView
大小,这意味着您可以看到所有内容而无需滚动,这就是为什么这里不滚动。
始终记住绑定delegate
和dataSource
并将其添加到您的课程中@interface ProfileViewController ()<UIScrollViewDelegate>