2013-02-26 3 views
1

В настоящее время я работаю для приложения коллажа. Я хочу нарисовать рамку коллажа, и после этого мне нужно добавить изображения из ролика камеры или камеры. Мне нужен следующий вид типа enter image description hereКак добавить несколько изображений в разные формы?

Я добавил 5 UIImageViews. Для того, чтобы нарисовать в форме я добавил UIBezierPath как для imageview1

UIBezierPath *path1 = [[UIBezierPath alloc] init]; 

     [path1 moveToPoint:CGPointMake(0, 0)]; 
     [path1 addLineToPoint:CGPointMake(150, 0)]; 
     [path1 addLineToPoint:CGPointMake(0, 150)]; 
     [path1 addLineToPoint:CGPointMake(0, 0)]; 

UIImageView *imgView1 = [[UIImageView alloc] initWithFrame:CGRectMake(140, 0, 160, 300)]; 
imgView1 . tag = 2; 
imgView1 . userInteractionEnabled = YES; 
imgView1. backgroundColor = [UIColor greenColor]; 
CGPathRef borderPathRef2 = [path1 CGPath]; 
CAShapeLayer *borderShapeLayer2 = [[CAShapeLayer alloc] init]; 
[borderShapeLayer2 setPath:borderPathRef2]; 
[[imgView1 layer] setMask:borderShapeLayer2]; 
imgView1.layer.masksToBounds = YES; 
[borderShapeLayer2 release]; 

[view1 addSubview:imgView1]; 

Как это я сделал для всех 5. Но после добавления imageView5 прикосновение не обнаруживается на всех других 4 представлений, поскольку его рама перекрывающихся на других четырех ImageView.

Так что я не понимаю, как это сделать. Мне нужно добавить изображения ко всем изображениям с помощью сенсорного действия.

Пожалуйста, помогите мне. Если у кого-то есть представление об этом, пожалуйста, поделитесь.

Спасибо заранее.

Ниже приведен пример 2 от Приложение Insta Collage. enter image description here

+0

почему не использовать button.You иметь фоновое изображение, а также действия? –

+0

Если я буду использовать кнопки, то только действие с изображением будет делать действие кнопки. – deepti

+0

вы можете поделиться точным дизайном изображения, который вы хотите реализовать? этот кадр показывает несколько альтернатив для достижения того же. Для того, чтобы быть конкретным в соответствии с вашими потребностями, отправьте ссылку –

ответ

0

Вы должны попробовать случайные кнопки фасонных

вы можете найти свое решение в этом пользовательском классе найден на GitHub

Он работал для меня, и надеюсь, будет работать для вас тоже ....

Happy Code ...........

+0

Возможно, появится возможность щелкнуть по OBShapedButton. Если вы попробуете мой ответ, он будет работать во всех условиях. –

3

Я решил эту проблему, переопределив hitTest: withEvent: метод UIView.

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    //Getting View which is touched. 
    UIView *testView = [super hitTest:point withEvent:event]; 

    //If this is self. and point hitted on Masked Layer(Which is hiding our UIView). 
    if(testView == self && testView.layer.mask != nil && CGPathContainsPoint([(CAShapedLayer*)testView.layer.mask path], NULL, point, false)) 
    { 
      //Then return nil. So Touch thinks that UIView has not clicked. and touch is passed to UIView which is behind this view. And again hitTest is performed on inner UIViews. 
      testView = nil; 
    } 

    //Return nil. So touch thinks that UIView is not clicked. 
    //Return self. So touch thinks self is clicked. and no more hitTest is performed. 
    return testView; 
} 

Теперь я реализовал элемент управления под названием IQIrregularView для этой проблемы. Проверьте это.

https://github.com/hackiftekhar/IQIrregularView

Смежные вопросы