是否有可能设置的UIImageView的图像的位置?
-
22-08-2019 - |
题
我有一个显示更大的图像的UIImageView
。这似乎是居中的,但我想动议UIImageView
内部的图像。我看着 MoveMe的从苹果样品,但我他们是如何做到这一点无法弄清楚。看来,他们甚至没有为一个的UIImageView。任何想法?
解决方案
原始回答已通过CoreAnimation iOS4的被取代。
因此,作为金拇指说:你可以通过访问的UIView的CALayer的做到这一点。特别是其contentRect:
从苹果文档 :矩形,在单位坐标空间中,定义应使用的层的内容的部分。动画。
其他提示
你需要什么是一样的东西(例如,示出了由原始图像的左上角的30%的30%):
imageView.layer.contentsRect = CGRectMake(0.0, 0.0, 0.3, 0.3);
“contentsRect” 的描述: 矩形,在单位坐标空间中,定义了应该使用的层的内容的部分。
你想为显示图像,使其包含的UIImageView内?在这种情况下只是改变的UIImageView的contectMode到UIViewContentModeScaleToFill(如果纵横比是无关紧要的)或UIViewContentModeScaleAspectFit(如果你想保持纵横比)
在图1B中,这可以通过在检查器的设置模式进行。
在的代码,它可以做到
yourImageView.contentMode = UIViewContentModeScaleToFill;
如果你想要显示的大图片由于是内部一个UIImageView ,这样做将有一个UIScrollView内的图像视图的最佳和最简单的方法。这方面,你将能够放大和缩小图像中,也到处移动。
希望有所帮助。
这听起来并不像MoveMe的样品确实喜欢你想要的任何东西。在它了PlacardView的大小与所使用的图像相同。做它的唯一尺寸变化是一个视图变换,这并不影响图像的视口。据我了解,你有一个大的图片,并想显示一个小视窗进去。没有一个简单的类方法来做到这一点,但你可以用它来获得所期望的结果的函数:CGImageCreateWithImageInRect(CGImageRef,的CGRect)将帮助你
下面是一个使用它很短的示例:
CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect);
[UIImageView setImage:[UIImage imageWithCGImage:imageRef]];
CGImageRelease(imageRef);
非常感谢。我发现一个非常简单的解决方案,它看起来是这样的:
CGRect frameRect = myImage.frame;
CGPoint rectPoint = frameRect.origin;
CGFloat newXPos = rectPoint.x - 0.5f;
myImage.frame = CGRectMake(newXPos, 0.0f, myImage.frame.size.width, myImage.frame.size.height);
我刚移动框围绕。碰巧该帧的部分走出iPhone的视口的,但我希望这不会多大关系。有一个面具超过它,所以它看起来并不奇怪。用户不totice它是如何做。
可以通过实现相同的:
UIImageView *imgVw=[[UIImageView alloc]initwithFrame:CGRectMake(x,y,height,width)];
imgVw.image=[UIImage imageNamed:@""];
[self.view addSubView imgVw];
imgVw.contentMode = UIViewContentModeScaleToFill;