問題描述
所以我有一個 UIImageView
作為 UIScrollView
的子視圖,我將 contentSize
設置為小于 UIImageView
寬度和高度,但是它不允許我滾動.. 這是為什么?這是一些代碼:
So I have a UIImageView
as a subview of UIScrollView
, I've set the contentSize
to be smaller than the UIImageView
width and height, however it doesn't allow me to scroll.. why is this? Here's some code:
UIImage * image = [UIImage imageWithData:data];
UIImageView * imgView = [[UIImageView alloc] initWithImage:image];
[imgView setUserInteractionEnabled:YES];
//[imgView setContentMode:UIViewContentModeScaleAspectFill];
[imgView setBackgroundColor:[UIColor clearColor]];
[imgView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
[imgView setFrame:CGRectMake(0, 0, imgView.frame.size.width, imgView.frame.size.height)];
CGRect imgFrame;
imgFrame.size.width = originalImageSize.width;
imgFrame.size.height = originalImageSize.height;
imgFrame.origin.x = imageOriginPoint.x;
imgFrame.origin.y = imageOriginPoint.y;
UIScrollView * imgScrollView = [[UIScrollView alloc] initWithFrame:imgFrame];
[imgScrollView setScrollEnabled:YES];
[imgScrollView setClipsToBounds:YES];
[imgScrollView addSubview:imgView];
[imgScrollView setBackgroundColor:[UIColor clearColor]];
[imgScrollView setFrame:imgFrame];
[imgScrollView setContentSize:CGSizeMake(200, 200)];
SCROLL VIEW CONTENT SIZE WIDTH IS 200.000000 AND HEIGHT CONTENT SIZE IS 200.000000
UIIMAGE VIEW WIDTH IS 2240.225830 AND HEIGHT IS 2240.225830
SCROLL VIEW FRAME WIDTH IS 768.000000 AND SCROLL VIEW FRAME HEIGHT IS 768.000061
有什么想法嗎?
推薦答案
那是因為你的滾動視圖邊界的大小大于你的內(nèi)容大小.內(nèi)容大小需要是圖像視圖的實際大小,可見大小由框架/邊界設置.我猜你想在 {200, 200} 大小的矩形中滾動圖像?試試這個:
That's because that your size of bounds of scroll view is larger than your content size. The content size need to be the actual size of image view, and the visible size is set by frame / bounds. I guess you want to scroll a image in a {200, 200} sized rect? Try this:
UIScrollView * imgScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)]; // this is your visible rect
[imgScrollView setScrollEnabled:YES];
[imgScrollView setClipsToBounds:YES];
[imgScrollView addSubview:imgView];
[imgScrollView setBackgroundColor:[UIColor yellowColor]];
[imgScrollView setContentSize:imgFrame.size]; // this is your image view size
這篇關于盡管 contentSize 小于 UIImageView,但 UIScrollView 不滾動的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!