tvOSShelfController
简化 tvOS 区块式货架视图制作。
轻松在 tvOS 上设置标准区块式 '货架' 风格的视图(例如 App Store、Netflix,几乎所有媒体应用等)
示例
@import tvOSShelfController;
#define MODEL(n,p,i) [[KBModelItem alloc] initWithTitle:n imagePath:p uniqueID:i]
- (NSArray *)items {
KBSection *section = [KBSection new];
section.type = @"banner";
section.size = @"1700x525";
section.infinite = true;
section.autoScroll = true;
section.order = 0;
section.className = @"KBModelItem";
KBModelItem *modelItem = [KBModelItem new];
modelItem.details = @"Drake";
modelItem.title = @"Drake - Worst Behavior";
modelItem.banner = @"https://i.ytimg.com/vi/CccnAvfLPvE/hq720.jpg?sqp=-oaymwEXCNAFEJQDSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBKduZRk6TRsKi8h4DE_cPajmtOcA";
modelItem.uniqueID = @"CccnAvfLPvE";
modelItem.resultType = @1;
section.items = @[modelItem];
KBSection *sectionTwo = [KBSection new];
sectionTwo.type = @"standard";
sectionTwo.sectionName = @"First";
sectionTwo.size = @"320x240";
sectionTwo.infinite = false;
sectionTwo.autoScroll = false;
sectionTwo.order = 1;
sectionTwo.className = @"KBModelItem";
sectionTwo.items = @[
MODEL(@"God's Plan", @"https://i.ytimg.com/vi/xpVfcZ0ZcFM/hqdefault.jpg", @"xpVfcZ0ZcFM"),
MODEL(@"Rich Flex", @"https://i.ytimg.com/vi/I4DjHHVHWAE/hqdefault.jpg", @"I4DjHHVHWAE"),
MODEL(@"Spin Bout U", @"https://i.ytimg.com/vi/T8nbNQpRwNo/hqdefault.jpg", @"T8nbNQpRwNo"),
MODEL(@"MIA", @"https://i.ytimg.com/vi/NveQffpaOlU/hqdefault.jpg", @"NveQffpaOlU"),
MODEL(@"Search & Rescue", @"https://i.ytimg.com/vi/tVthyPOWc-E/hqdefault.jpg", @"tVthyPOWc-E"),
];
KBSection *sectionThree = [KBSection new];
sectionThree.type = @"standard";
sectionThree.sectionName = @"Second";
sectionThree.size = @"320x240";
sectionThree.infinite = false;
sectionThree.autoScroll = false;
sectionThree.order = 2;
sectionThree.className = @"KBModelItem";
sectionThree.items = @[
MODEL(@"Drake - Worst Behavior", @"https://i.ytimg.com/vi/CccnAvfLPvE/hq720.jpg?sqp=-oaymwEXCNAFEJQDSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBKduZRk6TRsKi8h4DE_cPajmtOcA", @"CccnAvfLPvE"),
MODEL(@"Drake - Stars (Official Music Video) 2023", @"https://i.ytimg.com/vi/R4DZBZJsoEY/hq720.jpg?sqp=-oaymwEXCNAFEJQDSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAKZUsBLjiB8Ook77VQSqatPhaQ2g", @"R4DZBZJsoEY"),
MODEL(@"DJ Khaled ft. Drake - POPSTAR (Official Music Video - Starring Justin Bieber)", @"https://i.ytimg.com/vi/3CxtK7-XtE0/hq720.jpg?sqp=-oaymwEXCNAFEJQDSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLD9FC8VLEM86eZAY8awL1-3LgmM2g", @"3CxtK7-XtE0"),
MODEL(@"Meek Mill - Going Bad feat. Drake (Official Video)", @"https://i.ytimg.com/vi/S1gp0m4B5p8/hqdefault.jpg?sqp=-oaymwEjCOADEI4CSFryq4qpAxUIARUAAAAAGAElAADIQj0AgKJDeAE=&rs=AOn4CLD33ZfTKyCvv6OWsoN_imf2kx3vnQ", @"S1gp0m4B5p8"),
MODEL(@"Teenage Fever", @"https://i.ytimg.com/vi/e8HtwsnuTIw/hq720.jpg?sqp=-oaymwEXCNAFEJQDSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLDMtNcOuNNwmb7rVQfQYpmpOeWDbA", @"e8HtwsnuTIw"),
];
return @[section, sectionTwo, sectionThree];
}
- (KBShelfViewController *)createShelfViewController {
KBShelfViewController *shelfViewController = [[KBShelfViewController alloc] init];
shelfViewController.placeholderImage = [UIImage imageNamed:@"YTPlaceholder.png"];
shelfViewController.itemSelectedBlock = ^(KBModelItem * _Nonnull item) {
NSLog(@"item selected block: %@", item);
};
shelfViewController.sections = [self items];
return shelfViewController;
}
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
。
要求
安装
tvOSShelfController 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'tvOSShelfController'
作者
lechium,[email protected]
授权
tvOSShelfController 在 MIT 许可下提供。请参阅 Licenses 文件以获取更多信息。
附加说明
这部分代码仍然比较粗糙,我试图将其从 nitoTV 抽象出来,并加以改进甚至可能规范化,但我意识到,据我所知,仍没有一个类似的库。实际上,我会在稍作清理后将这个库添加到它们的索引中,我只是想提供一个尽可能简洁的基本示例应用程序。