我有一个显示更大的图像的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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top