yapmak için birden çok CGPath'i birleştirin Birkaç CGR ve Elips kullanarak karmaşık bir şekil yapıyorum. Oluşturulduktan sonra bu yolu inmek istiyorum. Yolu hareket ettirdiğimde, her şekli okşadı. Her şekli tek bir yolla birleştirebilmem için bir yol var mı, inme kesişmiyor mu?Bir yolu
int thirds = self.height/3;
CGPathRef aPath = CGPathCreateMutable();
CGRect rectangle = CGRectMake((58 - 10)/2, 46, 10, self.height - 58);
CGPathAddRect(aPath, nil, rectangle);
CGPathAddEllipseInRect(aPath, nil, CGRectMake((58 - 48)/2, 0, 48, 48));
CGPathAddEllipseInRect(aPath, nil, CGRectMake((58 - 48)/2, thirds, 48, 48));
CGPathAddEllipseInRect(aPath, nil, CGRectMake((58 - 48)/2, thirds * 2, 48, 48));
CGPathAddEllipseInRect(aPath, nil, CGRectMake(0, self.height - 58, 58, 58));
CGPathCloseSubpath(aPath);
CGPathRef other = CGPathCreateCopy(aPath);
CAShapeLayer *square = [CAShapeLayer layer];
square.fillColor = [UIColor colorWithRed:36/255.0f green:56/255.0f blue:82/255.0f alpha:1.0f].CGColor;
square.strokeColor = [UIColor colorWithRed:50/255.0f green:70/255.0f blue:96/255.0f alpha:1.0f].CGColor;
square.path = other;
[self.layer addSublayer:square];
GÜNCELLEME
Birlikte yolları ekleyerek denedim ve sadece anahatlarını tanımlayan bir yolunu istiyorsanız Ben aynı sonucu
CGPathAddPath(aPath, nil, CGPathCreateWithRect(rectangle, nil));
CGPathAddPath(aPath, nil, CGPathCreateWithEllipseInRect(CGRectMake((58 - 48)/2, 0, 48, 48), nil));
CGPathAddPath(aPath, nil, CGPathCreateWithEllipseInRect(CGRectMake((58 - 48)/2, thirds, 48, 48), nil));
CGPathAddPath(aPath, nil, CGPathCreateWithEllipseInRect(CGRectMake((58 - 48)/2, thirds * 2, 48, 48), nil));
CGPathAddPath(aPath, nil, CGPathCreateWithEllipseInRect(CGRectMake(0, self.height - 58, 58, 58), nil));
'CGPathAddPath (path1, NULL, yol2) için Thomas Zoechling cevabı dayanarak' – CodaFi
@CodaFi Bu yüzden her şekil için yeni bir yol yarat ve 'CGPathAddPath'? – brenjt