ios - 向 UIView 添加填充

标签 ios iphone cocoa-touch uiview uikit

我正在寻找一种向 UIView 添加 padding 属性的方法。理想情况下,我想避免子类化并将其放入类别中。用法类似于:

myview.padding = UIEdgeInsetsMake(10, 10, 10, 10);

也许还有一个 paddingBox 属性,它会返回一个 CGRect 描述内部填充框的大小和位置。

现在,如何在类别中实现类似的东西。我最初虽然使用 bounds,但不幸的是 bounds 的大小与 frame 的大小相关联(始终相同)只有坐标可以不同。

最佳答案

这通常是通过在 View 中设置边界来完成的。所以如果你想要一个 10 的插图,你可以这样做:

view.bounds = CGRectInset(view.frame, 10.0f, 10.0f);

边界定义了 View 相对于框架的可绘制区域。所以这实际上应该给出一个填充。然后,您可以仅从边界获取“paddingBox”。

希望对您有所帮助! :)

在 Swift 5+ 中更新,它是

view.bounds = view.frame.insetBy(dx: 10.0, dy: 10.0);

关于ios - 向 UIView 添加填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14856821/

相关文章:

ios - 在 Xcode 中重命名 iOS 项目会将设备更改为 'My Mac'

ios - 从 UIAlertView 文本字段获取文本的问题

iphone - UIGraphicsBeginImageContext 导致内存(泄漏)溢出

ios - TodayWidget openURL 多次触发应用:openURL

ios - NSNumberFormatter 的问题

ios - 如何在 MapKit 中获取可见的叠加层? (即来自 Mapkit View 的 MKOverlay/MKOverlayRenderer)

javascript - 更换 iPhone 上的文档正文

ios - 通过蓝牙发送联系人

iphone - 切换调用状态栏时使用 Xamarin.iOS 调整 iOS View 的大小

iphone - "UIWindowLevelStatusBar + 1"奇怪的键盘行为