(関連する値を有するenum
)最初は、Objective-Cの中には直接相当するものはありません。あなただけのタイプUPCarouselFlowLayoutSpacing
の値の周りに渡す
typedef NS_ENUM(NSInteger, UPCarouselFlowLayoutSpacingMode) {
UPCarouselFlowLayoutSpacingModeFixed,
UPCarouselFlowLayoutSpacingModeOverlap
};
typedef struct {
UPCarouselFlowLayoutSpacingMode mode;
CGFloat amount;
} UPCarouselFlowLayoutSpacing;
:あなたの特定の例では、このようなものを使用することができます。ヘルパー関数を作成して作成しやすくすることができます(例:
秒間
UPCarouselFlowLayoutSpacing UPCarouselFlowLayoutSpacingMakeFixed(CGFloat spacing) {
UPCarouselFlowLayoutSpacing value;
value.mode = UPCarouselFlowLayoutSpacingModeFixed;
value.amount = spacing;
return value;
}
UPCarouselFlowLayoutSpacing UPCarouselFlowLayoutSpacingMakeOverlap(CGFloat visibleOffset) {
UPCarouselFlowLayoutSpacing value;
value.mode = UPCarouselFlowLayoutSpacingModeOverlap;
value.amount = visibleOffset;
return value;
}
、あなたのObjective-CクラスのcurrentPage
プロパティのセッターメソッドをオーバーライドすることができます
関連するタイプの列挙型ではないので、最初のスニペットは、Objective-Cのに変換することはできません
- (void)setCurrentPage:(NSInteger)page {
_page = page;
MovieCharacter *character = self.items[page];
self.infoLabel.text = character.name.localizedUppercaseString;
self.detailLabel.text = character.movie.localizedUppercaseString;
}
ObjCで利用可能です。 2番目のスニペットは、プロパティの明示的なセッターを実装することで変換できます。 – vadian
Objective-CをSwiftに変換するのは、SwiftからObjective Cに1対1の変換を行うよりもはるかに簡単です。Swiftの列挙型はユニークで強力です。Swiftに変換する簡単な方法を見つけることはできません –