Треугольная маска 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; }
Другие вопросы по тегам