ios - 如何在其中创建一个带有透明半圆的 View ,并添加阴影

标签 ios swift uiview

<分区>

我需要在应用程序中创建票证,就像我附加的图像一样。 我的问题是,我似乎无法找到一种解决方案来制作透明的半圆孔,同时让阴影跟随孔。

Ticket view

ticketview 将在 tableview 单元格中使用。

我的第一个想法是制作两个 View ,一个白色,一个绿色,然后在绿色部分添加一些背景色的圆形 View - 但是阴影看起来不正确。

然后我考虑将它添加为图像,但我只是认为这个解决方案是错误的,而且不是很适合 iOS 开发人员。此外,这不会在不同的设备上正确扩展,我将无法将文本与绿色部分对齐等。

所以我有点迷茫 - 如何解决这个问题?

最佳答案

请按照以下步骤解决您的问题:

  1. 在您的单元格中使用 UIView - 在您的案例中采用绿色 View
  2. 向其中添加两个 subview
  3. 一个在右上角,另一个在右下角(仅在右上角添加一半 View - View 的剩余一半部分必须在您的绿色 View 之外)
  4. 添加下面的代码设置成半圆形...

    firstCircleView.layer.cornerRadius = firstCircleView.frame.size.width + 2
    firstCircleView.clipsToBounds = true
    firstCircleView.layoutIfNeeded()
    
    secondCircleView.layer.cornerRadius = secondCircleView.frame.size.width + 2
    secondCircleView.clipsToBounds = true
    secondCircleView.layoutIfNeeded()
    

注意:您需要从两个 View 中创建。

首选屏幕截图:

enter image description here

输出:

enter image description here

注意 1:我已经将它添加到 UIView 而不是它,您可以将它添加到 UITableViewCell 中。为了便于理解,我在第一个屏幕截图中使用了灰色背景色。请在运行应用程序时将其设置为白色。

关于ios - 如何在其中创建一个带有透明半圆的 View ,并添加阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45009526/

相关文章:

ios - NSNumberFormatter 的准确性问题

ios - 为什么上标数字的Unicode字符显示高度不一样?

ios - UIView 的 subview 在边界外渲染

ios - 在iPhone和iPad上,我们可以不使用drawRect来绘制任何东西吗?

iOS 视频缓存 - 手动删除缓存

ios - 在子类化 ViewController 中查看

Swift 自定义数据推送通知

swift - 使用相同的参数递归调用函数

arrays - 如何使用 ExSwift Array.toDictionary?

objective-c - 是否可以通过电子邮件发送 UIView?