Tag: calayer

我怎样才能一个接一个地链接不同层的核心animation?

我有一个启用了分页的scrollView和N个页面,它们是UIViews作为scrollView的子视图。 我正在尝试执行以下操作: 用户滚动到页码n。 在这一点上,先前被添加到第n页(也就是页面[[scrollView子视图] objectAtIndex:n-1] .layer subLayers]的7个CALayers逐渐淡入。 但是我无法弄清楚如何使CALayers淡入。到目前为止,我已经从我的控制器的委托方法尝试了以下3种方法:(假设我有一个数组到图层,并且它们的不透明度被设置为0创build) – (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { int pageNumber = floor(self.scrollView.contentOffset.x / self.scrollView.frame.size.width); if(pageNumber == (n-1)) { int timeOffset = 0; [CATransaction begin]; for(CALayer *layer in layerArray) { CABasicAnimation *a = [CABasicAnimation animationWithKeyPath:@"opacity"]; a.duration = 6; a.beginTime = timeOffset++; a.fromValue = [NSNumber numberWithFloat:0.]; a.toValue = [NSNumber numberWithFloat:1.]; [layer addAnimation:a forKey:nil]; […]

iOS Android材质devise使用UICollectionView进行分层定时

我想使用UICollectionView在iOS中执行由Android Material Design Hierarchical Timing引入的animation 让我们说它是一个collectionView,调整视图的大小不是问题,那么及时做这个animation的最佳做法是什么。 如何执行延迟

我怎样才能将阴影添加到一个圆圈UIImageView或UIView?

我正在试图做一个圆UIImageView ,它的工作原理。 以下是我使用它的方式: [self.pic.layer setMasksToBounds:YES]; [self.pic.layer setCornerRadius:50.0]; 我想给UIImageView添加一些阴影。 下面的代码确实为我的图像视图添加了一些阴影,但是,图像视图变回正方形。 有人可以给我一些指针来解决这个问题吗? 以下是我用来添加阴影的代码: self.pic.layer.shadowColor = [UIColor purpleColor].CGColor; self.pic.layer.shadowOffset = CGSizeMake(0, 1); self.pic.layer.shadowOpacity = 1; self.pic.layer.shadowRadius = 1.0; self.pic.clipsToBounds = NO;

在UITableViewCell上绘制阴影

我怎样才能在UITableViewCell的顶部绘制阴影? Tweetbot这样做,这是一个截图:

在UITableViewCell的子视图上设置遮罩层将覆盖自动布局约束

我有一个具有多个子视图的UITableViewCell 。 其中一个子视图是UILabel ,根据UILabel本的大小dynamic调整单元格的高度。 这完美的作品。 我有另一个子视图,也有约束的单元格。 这个子视图总是应该和单元具有完全相同的高度。 这个效果也很好。 但是,当我尝试在子视图上设置遮罩层时遇到了问题。 蒙版图层正常工作,但是子视图的高度是错误的,与单元格的高度不一样。 这是我的面具层代码: UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.mySubview.bounds byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomLeft | UIRectCornerBottomRight) cornerRadii:CGSizeMake(10, 10)]; CAShapeLayer *maskLayer = [CAShapeLayer layer]; maskLayer.frame = self.mySubview.bounds; maskLayer.path = maskPath.CGPath; self.mySubview.layer.mask = maskLayer; 我一直在做研究,并试图find一种方法来解决这个问题,所以我可以设置遮罩层,并让子视图有正确的高度,但我一直无法得到它的工作。 我现在已经看过这个解决scheme多次推荐了: [self setNeedLayout]; [self layoutIfNeeded]; // Customize cell after here 但是这对我也不适用。 有没有办法让我知道什么时候自动布局约束已经被应用,以便我可以在之后应用遮罩层? 遮罩层代码非常简单,它使用子视图的边界,并且边界是closures的,因为它使用了约束已经应用之前存在的边界,并且子视图具有正确的高度。 至less我觉得我是正确的理解。

CALayer与CGContext,这是一个更好的devise方法?

我一直在做一些iOS绘图的实验。 为了做一个实际的练习,我写了一个BarChart组件。 下面是类图(呃,我不允许上传图片),所以让我用文字来写。 我有一个NGBarChartViewinheritance自UIView有2个协议NGBarChartViewDataSource和NGBarChartViewDelegate。 代码是在https://github.com/mraghuram/NELGPieChart/blob/master/NELGPieChart/NGBarChartView.m 为了绘制barChart,我创build了每个barChart作为不同的CAShapeLayer。 我这样做的原因有两个,首先我可以创build一个UIBezierPath并将其附加到一个CAShapeLayer对象和两个,我可以通过使用[Layer hitTest]方法轻松跟踪是否触摸barItem。 该组件工作得很好。 然而,我不习惯用我绘制barCharts的方法。 因此,这个笔记。 我需要关于以下方面的专家意见 通过使用CAShapeLayer和创buildBarItems我真的不使用UIGraphicsContext,这是一个很好的devise? 我的方法将在UIView中创build几个CALayers。 基于性能的限制,你可以在UIView中创buildCALayers的数量。 如果一个好的select是使用CGContext *方法,那么怎样才能确定一个特定的path是否被触及 从animation的angular度来看,比如当你点击它时Bar闪烁,是Layerdevise更好还是CGContextdevise更好。 非常感谢帮助。 顺便说一句,你可以自由地看我的代码和评论。 我会很乐意接受任何改善build议。 最好的,Murali

CAReplicatorLayer背后的魔法是什么?

我觉得CAReplicatorLayer有趣: 它可以非常有效地用不同的变换多次显示一个CALayer(怎么样?) 似乎它以某种方式重复使用复制图层的“后备存储”,甚至对其应用一些颜色色彩(如何?) 我想获得源代码或获得一些关于CAReplicatorLayer背后魔法的知识。 我想有一个类似于CAReplicatorLayer的CALayer类,但有更多的控制权。 我想单独控制 每个复制实例 的转换 。 所以问一个完全不同的方式:是否有可能获得一个CALayer的“支持商店”,然后显示它,但我想要多less次? (通过“支持存储”我的意思是为CALayer / UIView渲染的纹理。我不知道什么是在CoreAnimation / QuartzCore的引擎盖下发生了什么)。 为什么我没有在寻找替代品,例如将CALayer渲染为UIImage: 性能 在转换过程中,内容是dynamic/变化的 这将是双手可怕的做它的另一种方式!

iOS:带边框的圆angular矩形出血颜色

我通过将cornerRadius应用到UIImageView的图层,并通过borderWith和borderColor添加边框来绘制圆angular头像。 像这样: self.layer.masksToBounds = YES; self.layer.cornerRadius = imageDimension / 2.f; self.layer.borderWidth = 1.f; self.layer.borderColor = borderColor.CGColor; 这样做效果很好,除了边界之外的这些微小但明显的内容泄露外,像这样: 有没有一种方法可以让边界突破几个1/10点,或者将内容插入到边界之外呢? 解 感谢FelixLam,我提出了一个很好的解决scheme,并将在这里留给后世: @interface MMRoundImageViewWithBorder : UIView – (id)initWithImage:(UIImage *)image borderWidth:(CGFloat)borderWidth; @property (strong, nonatomic) UIImageView *imageView; @property (assign, nonatomic) CGFloat borderWidth; @property (strong, nonatomic) UIColor *borderColor; @end @implementation MMRoundImageViewWithBorder – (id)initWithImage:(UIImage *)image borderWidth:(CGFloat)borderWidth { if (self = [super […]

SpringWithDamping为CALayeranimation?

在iOS 7中引入的UIViewdynamicanimation玩了很多之后,最显着的是: [UIView animateWithDuration: delay: usingSpringWithDamping: initialSpringVelocity: options: animations: completion:]; 我想知道是否有相当于创build一个CALayeranimation时可以直接访问的'SpringWithDamping / Velocity'方法? 即通过CATransaction , CABasicAnimation或其他… 谢谢

在iOS的video中添加GIF水印

我需要完成这个function:在video上有一个GIF叠加层,希望将这个video和GIF组合成一个新的video。 我正在使用下面的代码,但结果只是没有GIF的video: – (void)mixVideoAsset:(AVAsset *)videoAsset { LLog(@"Begining"); NSDate * begin = [NSDate date]; // 2 – Create AVMutableComposition object. This object will hold your AVMutableCompositionTrack instances. AVMutableComposition *mixComposition = [[AVMutableComposition alloc] init]; // 3 – Video track AVMutableCompositionTrack *videoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid]; [videoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:kCMTimeZero error:nil]; // – Audio AVMutableCompositionTrack […]