enter image description here当我向scrollView添加三个imageViews时,我设置scrollView contentSize是scrollView的宽度的三倍,即使它出现在scrolView中,但是imageView的宽度不等于scrollview& #39; S。我确保已经将它们的宽度设置为每个otehr。如果谁知道如何解决这个问题,请帮助我,思考。
- (void)addScrollViewImage {
for (NSInteger index = 0; index < IMAGE_NUM; index++) {
UIImageView *imageView = [[UIImageView alloc] init];
CGFloat imageViewX = index * (self.scrollView.frame.size.width);
imageView.frame = CGRectMake(imageViewX, 0, self.scrollView.frame.size.width , self.scrollView.frame.size.height);
imageView.image = [UIImage imageNamed:@"搜索图片"];
imageView.contentMode = UIViewContentModeScaleAspectFill;
[self.scrollView addSubview:imageView];
}
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * IMAGE_NUM, self.scrollView.frame.size.height);
}
答案 0 :(得分:1)
您需要更改imageview内容模式
imageView.contentMode = UIViewContentModeScaleAspectFill;
使用
imageView.contentMode = UIViewContentModeScaleToFill;
答案 1 :(得分:0)
这是因为在加载viewController时,仍然不知道view / scrollView框架。
您需要在其中覆盖 viewDidLayoutSubviews()和设置子框架和内容大小。
重要说明:iOS正在为滚动指示器添加 EXTRA UIImageView。这就是为什么您不能在viewDidLayoutSubviews()中使用 scrollView.subviews.count ,但是可以使用IMAGE_NUM的原因。
一些Swift代码:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let scrollSize = scrollView.bounds.size
var frame = scrollView.bounds
// Wrong: for i in 0 ..< scrollView.subviews.count
for i in 0 ..< IMAGE_NUM {
let view = scrollView.subviews[i]
view.frame = frame
frame.origin.x += scrollSize.width
}
scrollView.contentSize = CGSize(width: frame.origin.x, height: scrollSize.height)
}