Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions IBPCollectionViewCompositionalLayout.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Pod::Spec.new do |s|
DESC
s.homepage = "https://github.com/kishikawakatsumi/#{s.name}"
s.ios.deployment_target = '10.0'
s.tvos.deployment_target = '12.0'
s.source_files = 'Sources/**/*.{h,m}'
s.public_header_files = "Sources/#{s.name}/include/*.h"
s.frameworks = 'UIKit'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ + (instancetype)layoutAnchorWithEdges:(IBPNSDirectionalRectEdge)edges {
}

+ (instancetype)layoutAnchorWithEdges:(IBPNSDirectionalRectEdge)edges absoluteOffset:(CGPoint)absoluteOffset {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutAnchor") layoutAnchorWithEdges:edges absoluteOffset:absoluteOffset];
} else {
return [[self alloc] initWithEdges:edges offset:absoluteOffset anchorPoint:AnchorPointFromEdges(edges) offsetIsUnitOffset:NO];
}
}

+ (instancetype)layoutAnchorWithEdges:(IBPNSDirectionalRectEdge)edges fractionalOffset:(CGPoint)fractionalOffset {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutAnchor") layoutAnchorWithEdges:edges fractionalOffset:fractionalOffset];
} else {
return [[self alloc] initWithEdges:edges offset:fractionalOffset anchorPoint:AnchorPointFromEdges(edges) offsetIsUnitOffset:YES];
Expand All @@ -42,15 +42,15 @@ + (instancetype)layoutAnchorWithAnchorPoint:(CGPoint)anchorPoint {
}

+ (instancetype)layoutAnchorWithAnchorPoint:(CGPoint)anchorPoint offset:(CGPoint)offset {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutAnchor") layoutAnchorWithAnchorPoint:anchorPoint offset:offset];
} else {
return [[self alloc] initWithEdges:EdgesFromAnchorPoint(anchorPoint) offset:offset anchorPoint:anchorPoint offsetIsUnitOffset:NO];
}
}

+ (instancetype)layoutAnchorWithAnchorPoint:(CGPoint)anchorPoint unitOffset:(CGPoint)unitOffset {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutAnchor") layoutAnchorWithAnchorPoint:anchorPoint unitOffset:unitOffset];
} else {
return [[self alloc] initWithEdges:EdgesFromAnchorPoint(anchorPoint) offset:unitOffset anchorPoint:anchorPoint offsetIsUnitOffset:YES];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ @implementation IBPNSCollectionLayoutBoundarySupplementaryItem
+ (instancetype)boundarySupplementaryItemWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutSize
elementKind:(NSString *)elementKind
alignment:(IBPNSRectAlignment)alignment {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutBoundarySupplementaryItem") boundarySupplementaryItemWithLayoutSize:layoutSize
elementKind:elementKind
alignment:alignment
Expand All @@ -43,7 +43,7 @@ + (instancetype)boundarySupplementaryItemWithLayoutSize:(IBPNSCollectionLayoutSi
elementKind:(NSString *)elementKind
alignment:(IBPNSRectAlignment)alignment
absoluteOffset:(CGPoint)absoluteOffset {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutBoundarySupplementaryItem") boundarySupplementaryItemWithLayoutSize:layoutSize
elementKind:elementKind
alignment:alignment
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ @interface IBPNSCollectionLayoutDecorationItem()
@implementation IBPNSCollectionLayoutDecorationItem

+ (instancetype)backgroundDecorationItemWithElementKind:(NSString *)elementKind {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutDecorationItem") backgroundDecorationItemWithElementKind:elementKind];
} else {
return [[self alloc] initWithElementKind:elementKind];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,31 +17,31 @@ @interface IBPNSCollectionLayoutDimension()
@implementation IBPNSCollectionLayoutDimension

+ (instancetype)fractionalWidthDimension:(CGFloat)fractionalWidth {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutDimension") fractionalWidthDimension:fractionalWidth];
} else {
return [self dimensionWithDimension:fractionalWidth semantic:IBPNSCollectionLayoutDimensionSemanticFractionalWidth];
}
}

+ (instancetype)fractionalHeightDimension:(CGFloat)fractionalHeight {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutDimension") fractionalHeightDimension:fractionalHeight];
} else {
return [self dimensionWithDimension:fractionalHeight semantic:IBPNSCollectionLayoutDimensionSemanticFractionalHeight];
}
}

+ (instancetype)absoluteDimension:(CGFloat)absoluteDimension {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutDimension") absoluteDimension:absoluteDimension];
} else {
return [self dimensionWithDimension:absoluteDimension semantic:IBPNSCollectionLayoutDimensionSemanticAbsolute];
}
}

+ (instancetype)estimatedDimension:(CGFloat)estimatedDimension {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutDimension") estimatedDimension:estimatedDimension];
} else {
return [self dimensionWithDimension:estimatedDimension semantic:IBPNSCollectionLayoutDimensionSemanticEstimated];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ + (instancetype)spacingForLeading:(IBPNSCollectionLayoutSpacing *)leading
top:(IBPNSCollectionLayoutSpacing *)top
trailing:(IBPNSCollectionLayoutSpacing *)trailing
bottom:(IBPNSCollectionLayoutSpacing *)bottom {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutEdgeSpacing") spacingForLeading:leading
top:top
trailing:trailing
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ @implementation IBPNSCollectionLayoutGroup

+ (instancetype)horizontalGroupWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutSize
subitems:(NSArray<IBPNSCollectionLayoutItem *> *)subitems {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutGroup") horizontalGroupWithLayoutSize:layoutSize subitems:subitems];
} else {
return [[self alloc] initWithSize:layoutSize
Expand All @@ -33,7 +33,7 @@ + (instancetype)horizontalGroupWithLayoutSize:(IBPNSCollectionLayoutSize *)layou
+ (instancetype)horizontalGroupWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutSize
subitem:(IBPNSCollectionLayoutItem *)subitem
count:(NSInteger)count {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutGroup") horizontalGroupWithLayoutSize:layoutSize subitem:subitem count:count];
} else {
return [[self alloc] initWithSize:layoutSize
Expand All @@ -52,7 +52,7 @@ + (instancetype)horizontalGroupWithLayoutSize:(IBPNSCollectionLayoutSize *)layou

+ (instancetype)verticalGroupWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutSize
subitems:(NSArray<IBPNSCollectionLayoutItem *> *)subitems {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutGroup") verticalGroupWithLayoutSize:layoutSize subitems:subitems];
} else {
return [[self alloc] initWithSize:layoutSize subitems:subitems
Expand All @@ -71,7 +71,7 @@ + (instancetype)verticalGroupWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutS
+ (instancetype)verticalGroupWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutSize
subitem:(IBPNSCollectionLayoutItem *)subitem
count:(NSInteger)count {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutGroup") verticalGroupWithLayoutSize:layoutSize subitem:subitem count:count];
} else {
return [[self alloc] initWithSize:layoutSize subitems:@[subitem]
Expand All @@ -88,7 +88,7 @@ + (instancetype)verticalGroupWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutS
}

+ (instancetype)customGroupWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutSize itemProvider:(IBPNSCollectionLayoutGroupCustomItemProvider)itemProvider {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutGroup") customGroupWithLayoutSize:layoutSize itemProvider:itemProvider];
} else {
return [[self alloc] initWithSize:layoutSize subitems:@[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ @interface IBPNSCollectionLayoutGroupCustomItem()
@implementation IBPNSCollectionLayoutGroupCustomItem

+ (instancetype)customItemWithFrame:(CGRect)frame {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutGroupCustomItem") customItemWithFrame:frame];
} else {
return [self customItemWithFrame:frame zIndex:0];
}
}

+ (instancetype)customItemWithFrame:(CGRect)frame zIndex:(NSInteger)zIndex {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutGroupCustomItem") customItemWithFrame:frame zIndex:zIndex];
} else {
return [[self alloc] initWithFrame:frame zIndex:zIndex];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
@implementation IBPNSCollectionLayoutItem

+ (instancetype)itemWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutSize {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutItem") itemWithLayoutSize:layoutSize];
} else {
return [self itemWithLayoutSize:layoutSize supplementaryItems:@[]];
Expand All @@ -17,7 +17,7 @@ + (instancetype)itemWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutSize {

+ (instancetype)itemWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutSize
supplementaryItems:(NSArray<IBPNSCollectionLayoutSupplementaryItem *> *)supplementaryItems {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutItem") itemWithLayoutSize:layoutSize supplementaryItems:supplementaryItems];
} else {
return [[self alloc] initWithLayoutSize:layoutSize supplementaryItems:supplementaryItems];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
@implementation IBPNSCollectionLayoutSection

+ (instancetype)sectionWithGroup:(IBPNSCollectionLayoutGroup *)group {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutSection") sectionWithGroup:group];
} else {
return [[self alloc] initWithGroup:group];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ @implementation IBPNSCollectionLayoutSize

+ (instancetype)sizeWithWidthDimension:(IBPNSCollectionLayoutDimension *)width
heightDimension:(IBPNSCollectionLayoutDimension *)height {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutSize") sizeWithWidthDimension:width heightDimension:height];
} else {
return [[self alloc] initWithWidthDimension:width heightDimension:height];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ @interface IBPNSCollectionLayoutSpacing()
@implementation IBPNSCollectionLayoutSpacing

+ (instancetype)flexibleSpacing:(CGFloat)flexibleSpacing {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutSpacing") flexibleSpacing:flexibleSpacing];
} else {
return [[self alloc] initWithSpacing:flexibleSpacing isFlexible:YES];
}
}

+ (instancetype)fixedSpacing:(CGFloat)fixedSpacing {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutSpacing") fixedSpacing:fixedSpacing];
} else {
return [[self alloc] initWithSpacing:fixedSpacing isFlexible:NO];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ @implementation IBPNSCollectionLayoutSupplementaryItem
+ (instancetype)supplementaryItemWithLayoutSize:(IBPNSCollectionLayoutSize *)layoutSize
elementKind:(NSString *)elementKind
containerAnchor:(IBPNSCollectionLayoutAnchor *)containerAnchor {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutSupplementaryItem") supplementaryItemWithLayoutSize:layoutSize
elementKind:elementKind
containerAnchor:containerAnchor];
Expand All @@ -24,7 +24,7 @@ + (instancetype)supplementaryItemWithLayoutSize:(IBPNSCollectionLayoutSize *)lay
elementKind:(NSString *)elementKind
containerAnchor:(IBPNSCollectionLayoutAnchor *)containerAnchor
itemAnchor:(IBPNSCollectionLayoutAnchor *)itemAnchor {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [NSClassFromString(@"NSCollectionLayoutSupplementaryItem") supplementaryItemWithLayoutSize:layoutSize
elementKind:elementKind
containerAnchor:containerAnchor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ @interface IBPUICollectionViewCompositionalLayout()<UICollectionViewDelegate> {
@implementation IBPUICollectionViewCompositionalLayout

- (instancetype)initWithSection:(IBPNSCollectionLayoutSection *)section {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [[NSClassFromString(@"UICollectionViewCompositionalLayout") alloc] initWithSection:section];
} else {
IBPUICollectionViewCompositionalLayoutConfiguration *configuration = [IBPUICollectionViewCompositionalLayoutConfiguration defaultConfiguration];
Expand All @@ -56,15 +56,15 @@ - (instancetype)initWithSection:(IBPNSCollectionLayoutSection *)section {

- (instancetype)initWithSection:(IBPNSCollectionLayoutSection *)section
configuration:(IBPUICollectionViewCompositionalLayoutConfiguration *)configuration {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [[NSClassFromString(@"UICollectionViewCompositionalLayout") alloc] initWithSection:section configuration:configuration];
} else {
return [self initWithSection:section sectionProvider:nil configuration:configuration];
}
}

- (instancetype)initWithSectionProvider:(IBPUICollectionViewCompositionalLayoutSectionProvider)sectionProvider {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [[NSClassFromString(@"UICollectionViewCompositionalLayout") alloc] initWithSectionProvider:sectionProvider];
} else {
IBPUICollectionViewCompositionalLayoutConfiguration *configuration = [IBPUICollectionViewCompositionalLayoutConfiguration defaultConfiguration];
Expand All @@ -74,7 +74,7 @@ - (instancetype)initWithSectionProvider:(IBPUICollectionViewCompositionalLayoutS

- (instancetype)initWithSectionProvider:(IBPUICollectionViewCompositionalLayoutSectionProvider)sectionProvider
configuration:(IBPUICollectionViewCompositionalLayoutConfiguration *)configuration {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [[NSClassFromString(@"UICollectionViewCompositionalLayout") alloc] initWithSectionProvider:sectionProvider configuration:configuration];
} else {
return [self initWithSection:nil sectionProvider:sectionProvider configuration:configuration];
Expand Down Expand Up @@ -501,17 +501,25 @@ - (UICollectionView *)setupOrthogonalScrollViewForSection:(IBPNSCollectionLayout
case IBPUICollectionLayoutSectionOrthogonalScrollingBehaviorNone:
case IBPUICollectionLayoutSectionOrthogonalScrollingBehaviorContinuous:
case IBPUICollectionLayoutSectionOrthogonalScrollingBehaviorContinuousGroupLeadingBoundary:
#if TARGET_OS_IOS
scrollView.pagingEnabled = NO;
#endif
break;
case IBPUICollectionLayoutSectionOrthogonalScrollingBehaviorPaging:
#if TARGET_OS_IOS
scrollView.pagingEnabled = YES;
#endif
break;
case IBPUICollectionLayoutSectionOrthogonalScrollingBehaviorGroupPaging:
#if TARGET_OS_IOS
scrollView.pagingEnabled = NO;
#endif
scrollView.decelerationRate = UIScrollViewDecelerationRateFast;
break;
case IBPUICollectionLayoutSectionOrthogonalScrollingBehaviorGroupPagingCentered:
#if TARGET_OS_IOS
scrollView.pagingEnabled = NO;
#endif
scrollView.decelerationRate = UIScrollViewDecelerationRateFast;
break;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ - (instancetype)initWithScrollDirection:(UICollectionViewScrollDirection)scrollD
}

- (instancetype)init {
if (@available(iOS 13, *)) {
if (@available(iOS 13, tvOS 13, *)) {
return [[NSClassFromString(@"UICollectionViewCompositionalLayoutConfiguration") alloc] init];
} else {
self = [super init];
Expand Down