基本上这是我的代码,用4个不同颜色和相等大小的象限绘制一个圆圈。我想要做的是顺时针和逆时针旋转这个圆圈,即顺时针旋转,当我触摸圆圈并沿顺时针方向拖动它时反之亦然。 我已经通过核心图形进行了循环。更多的事情是圆圈必须首先高速旋转并逐渐减速直到它停止。在这方面的任何帮助将非常感激。 请尽快回复。
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
// CGRect mainSquare = self.bounds/2;
CGRect mainSquare = CGRectMake(X_SPACE, Y_SPACE, 220, 200);
CGContextSaveGState(context);
// Create circle path and clip
CGContextAddEllipseInRect(context, mainSquare);
CGContextClip(context);
// Define rects
NSLog(@"helll %f",mainSquare.size.width);
CGRect topLeft = CGRectMake(mainSquare.origin.x, mainSquare.origin.y, (mainSquare.size.width / 2) , (mainSquare.size.height / 2) );
CGRect topRight = CGRectMake((mainSquare.size.width / 2) + X_SPACE, mainSquare.origin.y, mainSquare.size.width / 2, (mainSquare.size.height / 2) );
CGRect bottomLeft = CGRectMake(mainSquare.origin.x, (mainSquare.size.height / 2) + Y_SPACE, mainSquare.size.width / 2, (mainSquare.size.height / 2) );
CGRect bottomRight = CGRectMake((mainSquare.size.width / 2) + X_SPACE, (mainSquare.size.height / 2) + Y_SPACE, mainSquare.size.width / 2, mainSquare.size.height / 2);
// Define colors
CGColorRef topLeftColor = [[UIColor redColor] CGColor];
CGColorRef topRightColor = [[UIColor blueColor] CGColor];
CGColorRef bottomLeftColor = [[UIColor greenColor] CGColor];
CGColorRef bottomRightColor = [[UIColor yellowColor] CGColor];
// Fill rects with colors
CGContextSetFillColorWithColor(context, topLeftColor);
CGContextFillRect(context, topLeft);
CGContextSetFillColorWithColor(context, topRightColor);
CGContextFillRect(context, topRight);
CGContextSetFillColorWithColor(context, bottomLeftColor);
CGContextFillRect(context, bottomLeft);
CGContextSetFillColorWithColor(context, bottomRightColor);
CGContextFillRect(context, bottomRight);
CGContextRestoreGState(context);
}
答案 0 :(得分:0)
你可以使用transform&动画:
[UIView animateWithDuration:0.5
animations:^{
self.transform = CGAffineTransformRotate(self.transform, 30);
}
completion:^(BOOL completed){
NSLog(@"Completed");
}];
请记住转换后帧无效。我想你可以设定一些条件来相应地改变持续时间作为你的要求。任何进一步的问题只是在这里发布。