我希望周围有一个薄的灰色边框UITextView.我已经浏览了Apple文档,但在那里找不到任何属性.请帮忙.
我有一个简单的视图(图片的左侧),我需要创建一些覆盖(图片的右侧)到这个视图.这个叠加应该有一些不透明度,所以下面的视图仍然是部分可见的.最重要的是,这个叠加层应该在它的中间有一个圆孔,所以它不会覆盖视图的中心(见下图).
我可以轻松创建一个这样的圆圈:
int radius = 20; //whatever
CAShapeLayer *circle = [CAShapeLayer layer];
circle.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0,radius,radius) cornerRadius:radius].CGPath;
circle.position = CGPointMake(CGRectGetMidX(view.frame)-radius,
CGRectGetMidY(view.frame)-radius);
circle.fillColor = [UIColor clearColor].CGColor;
Run Code Online (Sandbox Code Playgroud)
像这样的"完整"矩形覆盖:
CAShapeLayer *shadow = [CAShapeLayer layer];
shadow.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, view.bounds.size.width, view.bounds.size.height) cornerRadius:0].CGPath;
shadow.position = CGPointMake(0, 0);
shadow.fillColor = [UIColor grayColor].CGColor;
shadow.lineWidth = 0;
shadow.opacity = 0.5;
[view.layer addSublayer:shadow];
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将这两个层组合在一起,以便创建我想要的效果.任何人?我已经尝试了所有的东西......非常感谢你的帮助!

在我的iPad应用程序中,我想制作UIView占据屏幕重要部分的屏幕截图.不幸的是,子视图非常嵌套,因此需要很长时间才能制作屏幕截图并使页面随后变形.
有没有比"通常"更快的方式?
UIGraphicsBeginImageContext(self.bounds.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想避免缓存或重构我的观点.
我想制作一个圆形的UIView或UIImageView.或者我可以改变使用滑块大小的圆圈,以及带有选择器视图的颜色.
我知道CAGradientLayer目前不支持径向渐变,只能选择kCAGradientLayerAxial.
我想要下面的东西:

我一直在寻找这个问题,并发现有一种解决方法.但这些解释对我来说并不清楚.所以我想知道我是否可以使用径向渐变CAGradientLayer,如果是,那么如何做呢?
我有一个CALayer,我想添加一个可伸缩的图像.如果我这样做:
_layer.contents = (id)[[UIImage imageNamed:@"grayTrim.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 15.0, 0.0, 15.0)].CGImage;
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为图层的默认contentGravity是kCAGravityResize.
我已经读过这可以使用contentsCenter完成,但我似乎无法弄清楚我将如何使用它来实现我的CALayer中的拉伸图像.
欢迎任何想法!
霍拉丘
- (void)drawRect:(CGRect)rect就足以设置[ _chartView setContentMode:UIViewContentModeRedraw]并且当设备改变它的定向时将调用此方法,并且可以为我的图表计算新的中心点.- (id)initWithFrame:(CGRect)frame,然后在视图控制器中添加它[self.view addSubview:chartView];.在这种情况下我如何处理轮换以重绘我的图表?我在我的项目中有这个代码:
- (void) fadeImageView {
[UIView animateWithDuration:1.0f
delay:0
options:UIViewAnimationCurveEaseInOut
animations:^{
self.imageView.alpha = 0.0f;
}
completion:^(BOOL finished) {
//make the image view un-tappable.
//if the fade was canceled, set the alpha to 1.0
}];
}
Run Code Online (Sandbox Code Playgroud)
但是,有时我想在imageview变得不可见之前取消此操作.有没有办法取消动画中期动画?
我发现有趣的CAReplicatorLayer:
我想了解源代码或了解CAReplicatorLayer背后的魔力.我想有一个类似于CAReplicatorLayer的CALayer类,但有更多的控制权.我想对每个复制的实例单独控制转换.
所以以一种完全不同的方式问道:是否有可能获得CALayer的"后备商店"并显示它,但我想要多次我想要?
(通过"支持商店"我的意思是CALayer/UIView的渲染纹理.我不太了解CoreAnimation/QuartzCore引擎盖下发生了什么).
为什么我不看其他替代方案,例如将CALayer渲染为UIImage:
今天偶然发现了这一点.如果我尝试访问CALayer没有导入,我在Xcode 4.6中收到警告<QuartzCore/QuartzCore.h>.但是在Xcode 5中可以正常工作.
quartz-core ×10
ios ×9
calayer ×4
objective-c ×3
uiview ×3
geometry ×1
ios5 ×1
iphone ×1
performance ×1
uianimation ×1
uiimage ×1
uiimageview ×1
xcode5 ×1