我有一个尺寸约为200x2000像素的图像。我想以200x200矩形为中心显示图像,但我希望能够上下移动它。最好的我可以想象我需要将NSImageView添加到NSScrollView但我无法弄清楚这是如何,甚至是否是最好的方法。这是我开发OS X的第一天......
经过一些谷歌搜索后,我找到了this,我可以从中得到这个
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
View child = rv.findChildViewUnder(e.getX(), e.getY());
if (child != null && mGestureDetector.onTouchEvent(e)) {
Toast.makeText(MainActivity.this, "tocaste " + child, Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
但是我无法让图片显示在滚动视图中
答案 0 :(得分:0)
@ lusher00:在你的例子中,你初始化了两次self.Photo,首先是init()然后是(frame:imageRect),这可能解释了为什么图像不会出现。
您可以将imageView设置为NSScrollView的documentView,如下所示:
@IBOutlet var scrollView: NSScrollView!
var imageRect: NSRect
// Initialize below the imageView image with appropriate content (to adapt)
imageView.image = NSImage.init(named:"horizon")
imageRect = NSMakeRect(0.0, 0.0, imageView.image!.size.width, imageView.image!.size.height)
imageView.setFrameSize(CGSize(width: imageRect.width, height: imageRect.height))
imageView.imageScaling = NSImageScaling.ScaleNone
scrollView.documentView = imageView
scrollView.hasVerticalScroller = true
scrollView.hasHorizontalScroller = true
答案 1 :(得分:-1)
只需将图片视图添加为scrollview的子视图即可。
scrollView.addSubview(imageView)
您可以设置图像视图的位置,将其置于滚动视图内。
scrollview需要知道其内容大小有多大才能滚动该区域。所以不要忘记更新scrollview的contentSize
属性。
E.g。将200x200的imageView添加到scrollView,框架为200x200。将contentSize设置为400x400并调用imageView.center = scrollView.center,将使图像居中,并允许在滚动视图的200x200可见帧内围绕图像滚动。
您还可以通过检查contentOffset来获取scrollView的当前偏移量。
如果您需要在用户滚动时进行跟踪,则可以使用scrollViewDidScroll
。有关其他选项,请查看docs以获取其他选项。