相关疑难解决方法(0)

在UIView中剪切透明孔

展望创建一个具有它里面的透明框架,使视图背后的意见,可以通过这个透明的框架中可以看出,但是这以外的地区将不显示通过视图.所以在视图中基本上是一个窗口.

希望能够做到这样的事情:

 CGRect hole = CGRectMake(100, 100, 250, 250);
CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [UIColor blackColor].CGColor);
CGContextFillRect(context, rect);

CGContextAddRect(context, hole);
CGContextClip(context);

CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
CGContextFillRect(context, rect);
Run Code Online (Sandbox Code Playgroud)

但是清除不会覆盖黑色,所以整个背景都是黑色的.沿着这些方向的任何想法?

objective-c uiview cgcontext ios

45
推荐指数
8
解决办法
3万
查看次数

UIView中间透明

在此输入图像描述

是否可以UIView用颜色创建这样的填充,但在中间是透明的?

我想在这里创造5 UIView秒.只是想知道是否可以通过仅使用一个来完成UIView

objective-c transparent uiview ios

4
推荐指数
1
解决办法
3534
查看次数

UIView drawRect:绘制倒像素,制作一个洞,一个窗口,负空间

使用下面的代码,我绘制一个圆角矩形.它绘制了一个漂亮的浅灰色填充圆角矩形(大小为"self").我实际上想绘制这个像素的倒数,即:不是一个实心的圆角矩形,而是一个实心的浅灰色矩形中这个圆形矩形形状的窗口或孔.

我需要使用反向剪辑方法吗?或者我需要使用bezier路径?借口如果这是非常基本的,虽然找不到信息.

谢谢阅读!

- (void)drawRect:(CGRect)rect
{

    // get the context
    CGContextRef context = UIGraphicsGetCurrentContext

    CGContextSaveGState(context);    

    //draw the rounded rectangle
    CGContextSetStrokeColorWithColor(context, [[UIColor blackColor] CGColor]);
    CGContextSetRGBFillColor(context, 0.8, 0.8, 0.8, 1.0);
    CGContextSetLineWidth(context, _lineWidth);

    CGRect rrect = CGRectMake(CGRectGetMinX(rect), CGRectGetMinY(rect), CGRectGetWidth(rect), CGRectGetHeight(rect));
    CGFloat radius = _cornerRadius;

    CGFloat minx = CGRectGetMinX(rrect), midx = CGRectGetMidX(rrect), maxx = CGRectGetMaxX(rrect);
    CGFloat miny = CGRectGetMinY(rrect), midy = CGRectGetMidY(rrect), maxy = CGRectGetMaxY(rrect);

    CGContextMoveToPoint(context, minx, midy);
    // Add an arc through 2 to 3
    CGContextAddArcToPoint(context, minx, miny, midx, miny, radius);
    // Add …
Run Code Online (Sandbox Code Playgroud)

core-graphics drawrect ios

3
推荐指数
1
解决办法
3934
查看次数

创建一个清晰的blurView

我正在创建一个模糊视图的叠加层,中间有一个清晰的矩形切口。到目前为止,我的代码实现了相反的效果,即在中间带有模糊切口的 clearView。

我已经从以下帖子中调整了我的步骤,如果有人能指出我正确的方向,我将不胜感激。

UIView 上圆形图层的快速蒙版

带有透明孔的 CALayer

let blurView = UIVisualEffectView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height))
blurView.effect = UIBlurEffect(style: UIBlurEffectStyle.dark)

let scanLayer = CAShapeLayer()
scanLayer.path = CGPath(rect: scanRect, transform: nil)

view.addSubview(blurView)
blurView.layer.addSublayer(scanLayer)
blurView.layer.mask = scanLayer
Run Code Online (Sandbox Code Playgroud)

ios swift uiblureffect uivisualeffectview

3
推荐指数
1
解决办法
953
查看次数