Треугольная маска UIImageView IOS
Проверьте прикрепленный скриншот.
Это то, что я сделал. Я создал UIImageView
в раскадровке и назначьте изображение (розовое треугольное изображение) imageView
, Я использовал жест, чтобы распознать событие перетаскивания (правая сторона, половина экрана) на image
,
На самом деле, мне нужно событие перетаскивания, только когда я щелкаю и перетаскиваю из розовой части, но проблема в том, когда я щелкаю и перетаскиваю за пределы розовой области соседнее изображение, также изображение перетаскивается. Я не использовал маскировку. Просто положи imageView
на раскадровке. Можете ли вы дать мне исходный код моей проблемы, как решить эту проблему?
1 ответ
Решение
Вы можете проверить цвет точки касания и сравнить с нужной. Вот пример кода для достижения этой цели
- (UIColor *) colorOfPoint:(CGPoint)point { unsigned char pixel[4] = {0};
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, kCGBitmapAlphaInfoMask & kCGImageAlphaPremultipliedLast);
CGContextTranslateCTM(context, -point.x, -point.y);
[self.layer renderInContext:context];
CGContextRelease(context); CGColorSpaceRelease(colorSpace);
//NSLog(@"pixel: %d %d %d %d", pixel[0], pixel[1], pixel[2], pixel[3]);
UIColor *color = [UIColor colorWithRed:pixel[0]/255.0 green:pixel[1]/255.0 blue:pixel[2]/255.0 alpha:pixel[3]/255.0];
return color; }