У меня есть пользовательский UIView, создающий линию, которая вращается вокруг своей оси.Как сохранить CAShapeLayer внутри своего родительского UIView?
lineLayer = [[CAShapeLayer alloc] init];
UIBezierPath *bezierPath = [UIBezierPath bezierPath];
CGFloat width = CGRectGetWidth(self.frame)/2.0f;
CGFloat height = CGRectGetHeight(self.frame)/2.0f;
CGPoint centerPoint = CGPointMake(width, height);
CGPoint addLineToPoint = CGPointMake(width, -30);
[bezierPath moveToPoint:centerPoint];
[bezierPath addLineToPoint:addLineToPoint];
lineLayer.strokeColor = [UIColor whiteColor].CGColor;
lineLayer.frame = self.bounds;
lineLayer.lineWidth = 1.0;
lineLayer.path = bezierPath.CGPath;
[self.layer addSublayer:lineLayer];
[lineLayer setHidden:YES];
В настоящее время этот вид установлен как РОДИТЕЛЬСКИЙ КЛАСС UIView в Раскадровке.
Когда я запускаю Project, этот linelayer отображается из его родительского слоя представления.
Вот на этом снимке, lineLayer выходит из своего родителя UIView-х, а также другая точка зрения родителя Просмотр в раскадровке иерархии.
Любая помощь ????
Я думаю, что его из-за этого 'lineLayer.frame = self.bounds;' ваш кадр больше, изменить высоту фрейма, он должен работать. – iphonic
Вы имеете в виду рамку линии Layer или View? –
Да, кадр, который вы устанавливаете, имеет вид, он может быть больше, чем фактический рисунок, поэтому вместо установки 'self.bounds' вы можете попробовать изменить высоту, исходя из' self.bounds'? – iphonic