【问题标题】:iOS : How to create a close button that sits on the edge of a UIView with rounded corners (using IB)?iOS:如何创建一个位于带有圆角的 UIView 边缘的关闭按钮(使用 IB)?
【发布时间】:2011-12-06 07:50:39
【问题描述】:

背景:

我正在开发一个 iPad 应用程序,当用户单击图像时会弹出一个自定义视图。 我希望视图具有圆角和位于右上边缘的关闭按钮(圆圈中的红色 x)。

按钮在视图内部和视图之外的一半......看看 Kayak 或 Zynga Poker 应用程序,看看我在说什么。

问题:如果我以编程方式创建视图并添加按钮,它就可以工作。

但是,我真的很想用笔尖来创建视图,这样我就可以正确地设计视图。因此,当我在视图上调用 self.layer.maskToBounds = YES (创建半径为 25 的圆角)时,它会夹住我的按钮(因为它的一半进一半出)。如何保留我的按钮而不会被剪裁并且仍然有圆角?

【问题讨论】:

  • 您是在按钮上还是在包含该按钮的视图上调用 maskToBounds?如果你想要按钮上的圆角,你不会在按钮上调用 maskToBounds 吗?

标签: ios uiview rounded-corners


【解决方案1】:

在我看来,您正在使用视图和按钮。您可能会尝试使用第三个容器视图(背景清晰),您可以在其中放置原始视图和按钮。该按钮需要位于视图的顶部,可以这么说,所以它不会被您的视图遮挡。但这应该允许您在视图(而不是容器视图)上有适当的圆角并且让您的按钮完全可见。

【讨论】:

  • 这是我真的不想做的事情,但看起来这是唯一的方法......感谢您的帮助!
【解决方案2】:

某些设置,例如 maskToBounds、cornerRadius,在 IB 中不可用。您可以使用 NIB 创建整个视图,但它在 IB 中没有圆角,并且在 viewDidLoad 中您只设置了那些无法在 IB 中设置的属性。

【讨论】:

  • 我并不担心在代码中设置这些属性......事实上,这就是我在 IB 中设置视图后正在做的事情。问题是设置代码会切断角落(如预期的那样),但也会将按钮剪成两半,因为它在视图之外 50%。
猜你喜欢
  • 1970-01-01
  • 2014-02-03
  • 1970-01-01
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
  • 2015-04-13
  • 1970-01-01
相关资源
最近更新 更多