尝试在UIView上屏蔽椭圆的动画以进行比例变换,保留在中心位置.
我发现的CALayer - CABasicAnimation不是围绕中心/ anchorPoint缩放,并随后加入一个bounds属性到maskLayer CAShapeLayer然而,这与面罩定位在只显示它的1/4左上角结束.我希望面具保持在屏幕的中心.
@synthesize maskedView;
- (void)viewDidLoad
{
[super viewDidLoad];
UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"Next"];
vc.view.frame = CGRectMake(0,0, self.view.frame.size.width, self.view.frame.size.height);
vc.view.layer.bounds = self.view.layer.bounds;
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
CGRect maskRect = CGRectMake((self.view.frame.size.width/2)-50, (self.view.frame.size.height/2)-50, 100, 100);
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddEllipseInRect(path, nil, maskRect);
[maskLayer setPath:path];
CGPathRelease(path);
vc.view.layer.mask = maskLayer;
[self.view addSubview:vc.view];
maskedView = vc.view;
[self startAnimation];
}
Run Code Online (Sandbox Code Playgroud)
动画...
-(void)startAnimation
{
maskedView.layer.mask.bounds = CGRectMake((self.view.frame.size.width/2)-50, (self.view.frame.size.height/2)-50, 100, 100);
maskedView.layer.mask.anchorPoint = CGPointMake(.5,.5);
maskedView.layer.mask.contentsGravity = …Run Code Online (Sandbox Code Playgroud) 使用带有CATransform3DMakeRotation的以下UIView动画,UIView的一半将在变换期间消失并在完成时重新出现.这只发生在界面构建器的视图层次结构中UIView后面的UIImageView时.
[UIView animateWithDuration:1.0 delay:0.0 options:nil animations:^{
myView.layer.transform = CATransform3DMakeRotation(M_PI,0.0,1.0,0.0);
} completion:nil];
Run Code Online (Sandbox Code Playgroud)
以下是界面构建器中的视图布局

以及下面的动画结果.

第二张图像是在任何动画发生之前,左半部分消失.收缩后,经过中心点后,右侧(前一个左侧)重新出现,如第四张图所示.
使用时设置背景图像
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"jeans.png"]];
Run Code Online (Sandbox Code Playgroud)
动画按预期完成.
xcode core-animation interface-builder ios catransform3drotate
尝试为Android Ring Shape设置动画,以产生与所示图像序列类似的效果.

我找到了Shape Drawable类型的戒指.
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadius="75dp"
android:thickness="25dp"
android:useLevel="false">
Run Code Online (Sandbox Code Playgroud)
随着ArcShape(startAngle,sweepAngle)方法.
ShapeDrawable shape = new ShapeDrawable(new ArcShape(0, 360));
shape.setIntrinsicHeight(100);
shape.setIntrinsicWidth(100);
shape.getPaint().setColor(Color.BLACK);
Run Code Online (Sandbox Code Playgroud)
然而,问题在于无法找到可绘制形状的扫掠角度属性或为ArcShape创建内半径的能力.
我试图制作一个流畅的动画.
目前正在设计一个 REST API,并且不确定如何最好地处理提款操作,出于发布忽略安全性的目的,因为这已经得到处理。
当前用户资源有一个平衡连接,
GET https://api.example.com/user/1/balance
{"balance":10}
Run Code Online (Sandbox Code Playgroud)
将返还用户余额。
我可以想到两种方式从该余额中提取,要么在余额连接上删除,要么通过新连接提取,然后将金额发布到该连接。
DELETE实施 - 撤回 5 分
DELETE https://api.example.com/user/1/balance?amount=5
{"balance":5}
Run Code Online (Sandbox Code Playgroud)
POST实施 - 提现 5 分
POST https://api.example.com/user/1/withdraw
HTTP BODY: amount=5
{"balance":5}
Run Code Online (Sandbox Code Playgroud)
建议?
就我个人而言,我会在提款连接上使用POST,因为这将操作与数据分开,然后可以使用GET获取提款交易并使用DELETE取消。
另一种方法可能是在余额对象上创建交易连接,然后对其进行POST 。
POST https://api.example.com/user/1/balance/transactions
HTTP BODY: amount=-5
{"balance":5}
Run Code Online (Sandbox Code Playgroud)
这是一个更好的方法吗?然后,这将在余额资源上创建事务资源。