【问题标题】:UIEdgeInsetsInsetRect' has been replaced by instance method 'CGRect.inset(by:)UIEdgeInsetsInsetRect' 已被实例方法 'CGRect.inset(by:)
【发布时间】:2019-01-08 00:13:00
【问题描述】:

我在没有等待更新 pod 的情况下将我的项目更新到 Swift 4.2 时犯了一个错误。我已经慢慢更新了我的所有代码,但有一行我似乎无法弄清楚。

var animationRect = UIEdgeInsetsInsetRect(frame, UIEdgeInsets(top: padding, left: padding, bottom: padding, right: padding))

我收到的错误是,

UIEdgeInsetsInsetRect' 已被实例方法取代 'CGRect.inset(by:)

对此的任何帮助将不胜感激!

【问题讨论】:

    标签: ios swift xcode swift4.2


    【解决方案1】:

    错误很明显。你可以这样使用它:

    var animationRect = frame.inset(by: UIEdgeInsets(top: padding, left: padding, bottom: padding, right: padding))
    

    或者干脆

    var animationRect = frame.insetBy(dx: padding, dy: padding)
    

    【讨论】:

    • 非常感谢!我确信这是一个简单的答案,但我仍然不熟悉快速和缓慢地弄清楚语法。
    【解决方案2】:

    Swift 4.2 和 Xcode 10

    以前是这样的——

    let bounds = UIEdgeInsetsEqualToEdgeInsets(view.bounds,view.safeAreaInsets)
    

    现在是 swift 4.2 -

    let bounds = view.bounds.inset(by: view.safeAreaInsets)
    

    【讨论】:

    • 这个有帮助!!
    【解决方案3】:

    Swift 4.2 中的 UIEdgeInsets

    早期版本

    let padding = UIEdgeInsets(top: 0, left: 40, bottom: 0, right: 5)
     override func textRect(forBounds bounds: CGRect) -> CGRect {
                return UIEdgeInsetsInsetRect(bounds, padding)
            }
    
    to swift 4.2 and Xcode 10
    
    let padding = UIEdgeInsets(top: 0, left: 40, bottom: 0, right: 5)
     override func textRect(forBounds bounds: CGRect) -> CGRect {
            return rect.inset(by: GlobalClass.language == "ar" ? paddingR : padding)
        }
    

    【讨论】:

      【解决方案4】:

      也可以通过为特定的 pod 设置 SWIFT_VERSION 来解决 pod 的此类问题。

      post_install do |installer|
        installer.pods_project.targets.each do |target|
      
          if ['MessageKit'].include? target.name
            target.build_configurations.each do |config|
              config.build_settings['SWIFT_VERSION'] = '5.0'
            end
          end
      
        end
      end
      

      【讨论】:

        猜你喜欢
        • 2016-11-15
        • 2019-01-02
        • 1970-01-01
        • 2020-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多