Поведение вложения iOS UIDynamics, показывающее линию

Это способ настроить UIDynamicBehaviors, чтобы показать "линию", которая присоединяет два UIView, используя поведение вложения UIDynamics?

1 ответ

Решение

Взгляните на DynamicsCatalog, который вы можете найти на веб-сайте Apple для разработчиков. Вы увидите пунктирную линию, которая будет нарисована внутри класса APLDecorationView. UIAttachmentBehavior просто отвечает за обработку вложения между указанными элементами, не рисуя никаких соединений.

  1. Так что если вы хотите использовать его внутри своего проекта, вставьте APLDecorationView.h внутри вашего файла.
  2. Когда ваш UIViews где веревка должна быть добавлена, инициализирована, используйте следующий метод:

    trackAndDrawAttachmentFromView:toView:withAttachmentOffset:
    
  3. Настройте внутри метода UIImage который должен отображаться и, возможно, размер.

В моем случае это выглядело так:

[(APLDecorationView *)self trackAndDrawAttachmentFromView:self.viewOne
                                                   toView:self.viewTwo
                                     withAttachmentOffset:CGPointZero];

И это модификация моего APDecorationView:

    NSInteger iRopeElements = ( isiPad ) ? 15 : 20;
    for (NSUInteger i=0; i < iRopeElements; i++)
    {
        UIImage *ropeElement = [UIImage imageNamed:@"rope_element"];

        CALayer *layerRope = [CALayer layer];
        layerRope.contents = (__bridge id)(ropeElement.CGImage);
        CGFloat fRopeWidth = attachedView.frame.size.width * 0.3f;
        layerRope.bounds = CGRectMake(0, 0, fRopeWidth, fRopeWidth / 1.64f);
        layerRope.anchorPoint = CGPointMake(0.5, 0);

        [self.layer insertSublayer:layerRope atIndex:0];
        [self.attachmentDecorationLayers addObject:layerRope];
    }
Другие вопросы по тегам