我可以有选择地 clipToBounds 吗?

Can I clipToBounds selectively?

我有一个自定义 class,它为我的按钮添加了边框,并具有在左上角创建“X”按钮的功能。

第一个问题:为了使 X 按钮出现在图像按钮的边界之外,我必须关闭图像按钮上的 clipToBounds。但这具有让图像穿过圆角的负面影响。有没有办法只裁剪图像而不裁剪 X 按钮?

第二个问题:边框显示在 X 按钮上方。 (起初我认为这是一个 alpha 问题,但事实并非如此。)我希望第一个问题的解决方案能够解决第二个问题,这就是我在这里解决这两个问题的原因。

我建议创建一个新视图并将 x 按钮和图像视图添加为子视图。此视图不会裁剪到边界。然后在image view上设置border、corner radius和clipToBounds。

我最好的建议是将您的按钮替换为自定义 UIView,您将向其添加 UITapGestureRecognizer。然后你就可以很快地解决你的问题。

在您的 ButtonView(您的 UIView 子类)中添加一个 UIImageView 和您的图像,并向 UIImageView 本身添加一个边框。然后使用 layer.cornerRadius 圆角并剪裁到边界。

现在将单独的 UIImageView 添加到您的 ButtonView 并将其置于最前面。根据需要添加 'x' 图像和圆角。

最后将 ButtonView 的背景图片设置为 .clear 以达到最佳效果。