开发者

iPhone SDK Scroll View displaying extra space

I've got a scroll view, in which I have an imageview displaying a 960x960 image, but it scrolls to something close to 4x that. I've tried to log the widths of all possible views and everything claims that it's 960x960 (or smaller, I think I logged the screen width once...?)

I need this image to stop scrolling at the bottom right corner of the image rather than entering deadspace. Any help would be greatly appreciated.

Heck, even telling me what the name of the object is that is larger than my scrollView.contentSize would put me on the right track...

//Test-Image is just a 960 by 960 image that's numbered around the edges 1-10 so you can tell if it's being moved
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Test-Image.png"]];
self.imageView = tempImageView;
[tempImageView release];

scrollView.contentSize = CGSizeMake(imageView.frame.size.width, imageView.frame.size.height);

//Tested with this, results the same.
//[scrollView setContentSize:CGSizeMake(960, 960)];

NSLog(@"What is my scrollView's height attribute?...%f", scrollView.contentSize.height);
// Returns 960
NSLog(@"What is in scrollView's width attribute?...%f", scrollView.contentSize.width);
// Returns 960

scrollView.contentOffset = CGPointMake(480, 480);

scrollView.maximumZoomScale = 8.0;
scrollView.minimumZoomScale = 0.25;
// Commenting clipsT开发者_JAVA百科oBounds out doesn't seem to have any effect
scrollView.clipsToBounds = YES;
scrollView.delegate = self;

[scrollView addSubview:imageView];


Unfortunately, I do not have a specific answer.

  • Reference. Try [scrollView addSubview: self.imageView]; instead of [...addSubview: imageView];

  • Content Size. Try setting the content size after adding the ImageView.
    [scrollView setContentSize: CGSizeMake(imageView.frame.size.width, imageView.frame.size.height)];

  • Delegate. Did you use and set the scrollview's delegate property (oIWScroll.delegate = self;)?

  • Clipping. It should not matter.

  • ScrollView Frame. Make sure the frame of the scrollview is equal to or smaller than [UIScreen mainScreen].applicationFrame.

  • Framing. When I had a situation similar to what you described, one of the the things I did was to create a container UIView, add it to the scroll view and stuff the objects into the container view. But you really should not have to do that for one image.
    I also set the contentMode = UIViewContentModeTop.

I hope these suggestions help.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜