2017-07-05 14 views
0

Swift 3では動作しないUIImageタイプの以下の変数があります。同じ問題を抱えている誰もこのような方法でUIImageクラスに直面していますか?ここでは、コードは次のようになります。タイプUIRectCornerにSwift 3のメンバーisRightPageはありません

var image: UIImage? { 
     didSet { 
      var corners: UIRectCorner = isRightPage ? .TopRight | .BottomRight : .TopLeft | .BottomLeft 
      imageView.image = image!.imageByScalingAndCroppingForSize(bounds.size).imageWithRoundedCornersSize(20, corners: corners) 
     } 
    } 

我々が取得しているエラーがvar corners: UIRectCorner = isRightPage ? .TopRight | .BottomRight : .TopLeft | .BottomLeft

答えて

0

あなたが実際にそれゆえ列挙型の文からint値を取得していないため、「式のタイプは、よりコンテキストなしambigouosである」であります失敗していた。

これを試してみてください:

var corners: UIRectCorner = UIRectCorner(rawValue: isRightPage ? (UIRectCorner.topRight.rawValue | UIRectCorner.bottomRight.rawValue) : (UIRectCorner.topLeft.rawValue | UIRectCorner.bottomLeft.rawValue)) 
+0

グレートを。それはうまくいった。回答がマークされました。ありがとう。 –

0

スウィフト2は、フラグのセットを処理するための、新しいタイプの、OptionSetを導入しました。 |のようなビット演算子を使用する代わりに、リテラル配列表記([a, b, c])を使用して複数のフラグを組み合わせることができます。

Swift 3の開発中に導入されたSwift API Design Guidelinesは、タイプ名とプロトコル名だけが大文字で始まり、すべてが小文字で始まると言います。 iOS 10 APIがガイドラインに準拠するように変更されました。

したがって、このようなcorners定義:

let corners: UIRectCorner = isRightPage ? [.topRight, .bottomRight] : [.topLeft, .bottomLeft] 
関連する問題