【发布时间】:2013-01-07 16:09:28
【问题描述】:
我有一个UIImage,它显示在UIImageView 中。我在UIImageView 中还有另一张图片,它位于第一张图片的上方。我希望能够仅在第一张图像的边界内拖动第二张图像。为了使我的目标更清晰,请看这张图片:
.
绿色的大头针应该是可拖动的,但不能将大头针拖到蓝色的地方(地图外)。 目前图钉是可拖动的,但我不知道如何检查图钉是否在地图之外。
编辑: 我在我的 UIImageView 子类中使用此方法作为可拖动引脚:
- (UIColor *)colorAtPosition:(CGPoint)position {
CGRect sourceRect = CGRectMake(position.x, position.y, 1.f, 1.f);
CGImageRef imageRef = CGImageCreateWithImageInRect([[MapViewController sharedMapViewController]getImage].CGImage, sourceRect);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
unsigned char *buffer = malloc(4);
CGBitmapInfo bitmapInfo = kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big;
CGContextRef context = CGBitmapContextCreate(buffer, 1, 1, 8, 4, colorSpace, bitmapInfo);
CGColorSpaceRelease(colorSpace);
CGContextDrawImage(context, CGRectMake(0.f, 0.f, 1.f, 1.f), imageRef);
CGImageRelease(imageRef);
CGContextRelease(context);
CGFloat r = buffer[0] / 255.f;
CGFloat g = buffer[1] / 255.f;
CGFloat b = buffer[2] / 255.f;
CGFloat a = buffer[3] / 255.f;
free(buffer);
return [UIColor colorWithRed:r green:g blue:b alpha:a];
}
MapViewController 是地图的 UIIImageView 所在的 Viewcontroller。所以我让这个类成为一个单例来获取地图图像。但是我再次得到的颜色值是完全有线的。我还更新了照片,因为我的用户界面略有不同。
【问题讨论】:
标签: iphone ios uiimageview uiimage uitouch