草庐IT

objective-c - [CALayer drawInContext] 重影

我使用CALayer的自定义扩展绘制为可滚动图形,并在[MyCustomCALayerdrawInContext]中调用了一堆CGContextAddCurveToPoint。我实际上并没有绘制图形的整个长度,而是在每次UIPanGestureRecognizer更新以反射(reflect)新的水平偏移时重新绘制图层的内容。这样,我只绘制图形的可见部分,层的边界只延伸到屏幕的大小。[MyCustomCALayersetNeedsDisplay]在图形数据更改或平移偏移更改时被调用,然后导致[MyCustomCALayerdrawInContext]被调用。但是,每当我在平移过程中重新绘

ios - CALayer 创建透明圆形 mask

我想创建一个mask层,它是一个圆圈,使圆圈内容透明并保持周围的一切。不幸的是,下面的代码恰恰相反,它画了一个圆圈并使周围的一切都变得透明。CAShapeLayer*shape=[CAShapeLayerlayer];shape.frame=CGRectMake((CGSSize().width/2.f)-40.f,-40.f,80.f,80.f);CGPathRefpathRef=CGPathCreateWithEllipseInRect(CGRectMakeBoundsWithSize(shape.frame.size),NULL);shape.path=pathRef;shape

ios - 自动布局不传递给子层

我正在为iOSv5.8.3(build3)使用Xamarin。我在另一个UIView上添加了一个带有CAGradientLayer的UIView是这样的:publicstaticvoidAddGradientView(CGColorcolor1,CGColorcolor2,UIViewview){UIViewgradientView=newUIView(view.Bounds);gradientView.BackgroundColor=UIColor.Green;gradientView.AutoresizingMask=UIViewAutoresizing.All;CAGradien

ios - 在 iOS 上,setNeedsDisplay 确实不会导致 drawRect 被调用...除非 CALayer 的显示或 drawInContext 最后调用 drawRect?

我不是很明白CALayer的display和drawInContext与View中的drawRect有什么关系。如果我有一个每1秒设置一次[self.viewsetNeedsDisplay]的NSTimer,那么每1秒调用一次drawRect,如内部的NSLog语句所示drawRect的。但是如果我将CALayer子类化并将其用于View,如果我将display方法设为空,那么现在永远不会调用drawRect。更新:但是display每1秒调用一次,如NSLog语句所示。如果我删除那个空的display方法并添加一个空的drawInContext方法,同样,永远不会调用drawRect

ios - 在 UIView 中居中 CALayer

如何在UIView中将CALayer居中?我有以下代码,但似乎无法让CALayer在View中居中。该层的图像似乎总是以其右下角位于屏幕中央结束。UIView代码:-(void)awakeFromNib{testLayer=[CALayerlayer];testLayer=[[UIScreenmainScreen]scale];testLayer=kCAGravityCenter;testLayer.contents=(id)self.testImage.CGImage;[testLayersetPosition:self.center];[self.layeraddSublayer:

ios - 从使用 CALayer 设置样式的 UITextField 中的占位符文本中删除阴影

我已经从InterfaceBuilder(IB)创建了一个UITextField。因为我想要自定义样式,所以我在IB中选择了无样式。在viewDidLoad上,我为其指定了以下样式:txtEmail.layer.cornerRadius=8.0;txtEmail.layer.borderColor=[UIColorcolorWithWhite:199.0/255.0alpha:1].CGColor;txtEmail.layer.borderWidth=1.0;txtEmail.layer.shadowColor=[UIColorblackColor].CGColor;txtEmail.

ios - 我想在不使用任何第三方框架的情况下将过滤器应用于录制的视频。我曾尝试将 CIfilter 用于 CAlayer 但它不起作用

我想在不使用任何第三方框架的情况下将过滤器应用于预录视频我该怎么做。我曾尝试将CIfilter用于CAlayer但它不起作用。这是我的代码:CALayer*effectlayer=[CALayerlayer];CIFilter*filter=[CIFilterfilterWithName:@"CISepiaTone"keysAndValues:kCIInputImageKey,effectlayer,@"inputIntensity",@.5,nil];[effectlayersetFilters:[NSArrayarrayWithObjects:filter,nil]];CALaye

ios - 将 NSLayoutConstraints 与 CALayer 支持的 View 结合使用无法正确设置动画

我有一个自动布局设置,带有一个改变NSLayoutContraint常量值的动画//settheslideinview'sinitialheighttozeroself.adViewHeightConstraint=[NSLayoutConstraintconstraintWithItem:self.adContainerViewattribute:NSLayoutAttributeHeightrelatedBy:NSLayoutRelationEqualtoItem:nilattribute:NSLayoutAttributeNotAnAttributemultiplier:1.0c

iphone - Core Animation 和 CALayer 和 CATransformLayer 可以显示带有 "thickness"的对象吗?

我们似乎可以显示图层,甚至可以在CoreAnimation中为不同的图层使用不同的zPosition--然而,是否真的没有简单的方法来显示具有一定厚度的东西?例如,一片厚度为2毫米的奶酪,或者倾斜的按钮或硬币因此显示为1毫米厚?不知何故必须通过添加另一层来模仿厚度来显示厚度?所以这个2.5D是一个更基本的2.5D,它是一个仅限于平面2D图像的3D世界......而一些2.5D,例如一些RPG游戏,(如Diablo),有时也称为2.5D但是那些情况下的物体(例如建筑物)实际上可以具有宽度、长度和高度(厚度)。所以实际上,这些对我来说实际上是非常3D的……除了大多数对象都在一个向侧面倾斜的

ios - CALayer 上的绘制文本在运行时不显示或崩溃

我有一个CALayer,我先在上面画一些东西,然后画一个文本:-(void)drawInContext:(CGContextRef)context{CGContextSaveGState(context);//drawthings,everythingdisplayscorrectly...CGSizeexpectedCreditSize=[[gpData.creditsstringValue]sizeWithFont:[UIFontsystemFontOfSize:self.fontSize]];rect=CGRectMake(self.bounds.origin.x,self.bo