给定圆角半径时 UIButton 边框切割
UIButton border cut when corner radius is given
我创建了具有特定位置圆角半径的 UIButton,这意味着左按钮具有左上角半径和左下角半径,右按钮具有右上角半径和右下角半径我已经在 Xib 中使用按钮并给出边框但我剪掉了从某些方面来说,我附上了下面的截图。
查看右侧边角边框切割。这是我的代码
[btn_Newest setBackgroundColor:RGB(28.0, 91.0, 161.0, 1.0)];
[btn_Newest.layer setBorderWidth:1.5];
[btn_Newest.layer setBorderColor:RGB(28.0, 91.0, 161.0, 1.0).CGColor];
[btn_Newest setClipsToBounds:YES];
btn_Newest = (UIButton *)[self setroundCornersOnView:btn_Newest onTopLeft:YES topRight:NO bottomLeft:YES bottomRight:NO radius:7.0];
[btn_Popular setBackgroundColor:viewTopBar.backgroundColor];
[btn_Popular.layer setBorderWidth:1.5];
[btn_Popular.layer setBorderColor:RGB(28.0, 91.0, 161.0, 1.0).CGColor];
[btn_Popular setClipsToBounds:YES];
btn_Popular = (UIButton *)[self setroundCornersOnView:btn_Popular onTopLeft:NO topRight:YES bottomLeft:NO bottomRight:YES radius:7.0];
setroundCornersOnView这个函数创建特定的侧角radius.Can任何人在这种情况下帮助我。
而不是设置 setroundCornersOnView 。您可以将 cornerRadius 设置为按钮。
试试下面的代码。
[btn_Newest.layer setCornerRadius:5];
请尝试以下代码。我想它会满足你的要求。
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:btnPush.bounds byRoundingCorners:(UIRectCornerTopRight | UIRectCornerBottomRight) cornerRadii:CGSizeMake(7.0, 7.0)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = self.view.bounds;
maskLayer.path = maskPath.CGPath;
btnPush.layer.mask = maskLayer;
CAShapeLayer *borderLayer = [[CAShapeLayer alloc] init];
borderLayer.frame = self.view.bounds;
borderLayer.path = maskPath.CGPath;
borderLayer.lineWidth = 1.5f;
borderLayer.strokeColor = [UIColor blackColor].CGColor;
borderLayer.fillColor = [UIColor clearColor].CGColor;
[btnPush.layer addSublayer:borderLayer];
输出:
我创建了具有特定位置圆角半径的 UIButton,这意味着左按钮具有左上角半径和左下角半径,右按钮具有右上角半径和右下角半径我已经在 Xib 中使用按钮并给出边框但我剪掉了从某些方面来说,我附上了下面的截图。
查看右侧边角边框切割。这是我的代码
[btn_Newest setBackgroundColor:RGB(28.0, 91.0, 161.0, 1.0)];
[btn_Newest.layer setBorderWidth:1.5];
[btn_Newest.layer setBorderColor:RGB(28.0, 91.0, 161.0, 1.0).CGColor];
[btn_Newest setClipsToBounds:YES];
btn_Newest = (UIButton *)[self setroundCornersOnView:btn_Newest onTopLeft:YES topRight:NO bottomLeft:YES bottomRight:NO radius:7.0];
[btn_Popular setBackgroundColor:viewTopBar.backgroundColor];
[btn_Popular.layer setBorderWidth:1.5];
[btn_Popular.layer setBorderColor:RGB(28.0, 91.0, 161.0, 1.0).CGColor];
[btn_Popular setClipsToBounds:YES];
btn_Popular = (UIButton *)[self setroundCornersOnView:btn_Popular onTopLeft:NO topRight:YES bottomLeft:NO bottomRight:YES radius:7.0];
setroundCornersOnView这个函数创建特定的侧角radius.Can任何人在这种情况下帮助我。
而不是设置 setroundCornersOnView 。您可以将 cornerRadius 设置为按钮。
试试下面的代码。
[btn_Newest.layer setCornerRadius:5];
请尝试以下代码。我想它会满足你的要求。
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:btnPush.bounds byRoundingCorners:(UIRectCornerTopRight | UIRectCornerBottomRight) cornerRadii:CGSizeMake(7.0, 7.0)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = self.view.bounds;
maskLayer.path = maskPath.CGPath;
btnPush.layer.mask = maskLayer;
CAShapeLayer *borderLayer = [[CAShapeLayer alloc] init];
borderLayer.frame = self.view.bounds;
borderLayer.path = maskPath.CGPath;
borderLayer.lineWidth = 1.5f;
borderLayer.strokeColor = [UIColor blackColor].CGColor;
borderLayer.fillColor = [UIColor clearColor].CGColor;
[btnPush.layer addSublayer:borderLayer];
输出: