非常感谢!请帮忙!
我在UIView中有一个scrollView,在ScrollView中有一个imageView。 它们的大小相同。 这里是scrollView和imageview的日志
我没有在uiview和滚动视图之间使用autoLayout约束 以及scrollview和UIimageView
代码是:
- (void)setupScrollView
{
CGRect frame = CGRectMake(0, 0, self.scrollViewSizeView.frame.size.width, self.scrollViewSizeView.frame.size.height);
_colorScrollView = [[ColorScrollView alloc]initWithFrame:frame andUIImage:self.image];
[self.scrollViewSizeView addSubview:self.colorScrollView];
}
- (instancetype)initWithFrame:(CGRect)frame andUIImage:(UIImage *)image
{
self = [super initWithFrame:frame];
if (self)
{
self.contentSize = frame.size;
_imageView = [[ColorImageView alloc]initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
self.imageView.image = image;
[self addSubview:self.imageView];
}
return self;
}
滚动视图:
<ColorScrollView: 0x7fee13746dc0; baseClass = UIScrollView; frame = (0 0; 600 436); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x7fee13748270>; layer = <CALayer: 0x7fee13741330>; contentOffset: {0, 0}; contentSize: {600, 436}>
ImageView的:
<ColorImageView: 0x7fee13747e00; baseClass = UIImageView; frame = (0 0; 600 436); opaque = NO; layer = <CALayer: 0x7fee1370fc50>>
imageView内容模式是UIViewContentModeScaleAspectFit。 我希望imageView中的图像是中心。 但事实并非如此。 看起来它更喜欢保持在右侧。 很抱歉,我没有足够的声誉来发布图片:
看起来这个(*表示透明)
*****这是图像区域
*****这是图像区域
*****这是图像区域
*****这是图像区域
*****这是图像区域
答案 0 :(得分:0)
我唯一想到的是在uiscrollview中添加一个uiview,然后将你的图像添加到该uiview
如果你能给我们一些你可以帮助我们的约束
答案 1 :(得分:0)
来自你对@Ali RP的回答的赞扬,&#34;如果图像的宽高比接近于imageView的宽高比。那没问题。&#34;我认为你的问题是因为UIViewContentModeScaleAspectFit
。您有两个图像大小的空白区域。
<强> UIViewContentModeScaleAspectFit 强>
通过保持宽高比来缩放内容以适合视图的大小。视图边界的任何剩余区域都是透明的。
它之所以没有居中的原因是因为我猜你正在使用的图像太大了,并且裁剪了部分子视图。尝试使用较小的一个和一个具有不同宽高比的调试。例如,你应该有一些宽度> gt的图像;高度和一些高度>宽度。
另见这一个: Difference between UIViewContentModeScaleAspectFit and UIViewContentModeScaleToFill?