On Aug 20, 2010, at 2:52 PM, Quincey Morris wrote: > On Aug 20, 2010, at 10:54, Brian Postow wrote: > >> I just discovered [imageView setImageAlignment: ] which, as long as the >> imageView is bigger than the scrollview, does the correct thing (Lock the >> image to the upper left corner of the scrollView). However, when the >> imageView is smaller than the scrollview, The imageView is still locked to >> the bottom left of the scrollview, but the image is locked to the top left >> of the imageview. > > The image view's image alignment is irrelevant to scrolling. Scrolling > relates entirely and exclusively to the geometric relationship between the > document view and the content view. (You say "scrollview", but I think you > really mean the content view.) Moving the image around within the image view > does something that looks a little bit like scrolling, but isn't -- the > scroll bars wouldn't match the part of the image you can see. > > If the image view is smaller than the content view, another can of worms gets > opened up. It should be possible to put the image view in the center of the > content view, or at its top left, which should mean it's surrounded by the > scroll view's background color. But then you can't do any drawing outside of > the image view, which kind of feels wrong when you're trying to drag out a > selection rectangle. So in fact what I usually do is keep the document view > at least as large as the content view, even if its "canvas" is a smaller area > within it. That effectively divorces both the scale and the position of the > image area from the view, something that NSImageView can't actually do.
So, just to clarify, the whole hierarchy is Window> ContentView > ScrollView > ClipView > ImageView > Image? I take the "ContentView" to mean the content view of the window, or is there some other view between the scrollview and the clipview? If I don't make the imageview smaller than the others (which are (almost) all the same size), then how do I make the image smaller than the content view? > >> Setting the Scrollview boundsOrigin, the imageView bounds origin and >> translating the origin of the imageview or the scrollview had absolutely no >> effect. > > It's not the scroll view that's relevant, but the content (clip) view. I > think setting the clip view bounds origin works, or scrollToPoint:, but > [imageView setFrame:] is probably the easiest way. > Ok, I'll play with the imageView setframe a little more and see if I can get that to work for me. > I feel like I keep confusing matters rather than clarifying them, so I > apologize for that, but I also think the trouble you're having comes from > clinging to NSImageView. If you'd let go of that, I suspect things will fall > into place fairly easily. > But then I have to manually draw my image into the view and keep track of that myself.... I *DO* have an image (NSImage, CGImageRef, bitmap, SOMETHING) Brian Postow Senior Software Engineer Acordex Imaging Systems _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com