gpt4 book ai didi

ios - 如何在 Objective C 中以编程方式设置 Collection View ?

转载 作者:行者123 更新时间:2023-11-30 12:11:59 25 4
gpt4 key购买 nike

我是一个新手,试图学习如何以编程方式设置 Collection View

let layout = UICollectionViewFlowLayout()    
window?.rootViewController = UINavigationController(rootViewController : HomeController(collectionViewLayout:layout))

我正在尝试在 Objective C 中获取上述 swift 代码。下面列出了到目前为止我所做的操作导致错误。为了实现上述目标,我必须在 objc 代码中进行哪些更改。

ViewController *controller = [[ViewController alloc] init];  // @interface ViewController : UICollectionViewController  
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[controller collectionViewLayout:layout]] ; // ERROR How to set Collection View?

最佳答案

也许我没明白你想要实现什么......

您需要的是将自定义 init 方法添加到您的 ViewController 中。例如:

// In your .h file
@interface HomeViewController : UIViewController

- (instancetype)initWithCollectionViewLayout:(UICollectionViewLayout *)collectionViewLayout;

@end

// In your .m file
@interface HomeViewController ()

@property (nonatomic, strong) UICollectionViewLayout* collectionViewLayout;

@end

@implementation HomeViewController

- (instancetype)initWithCollectionViewLayout:(UICollectionViewLayout *)collectionViewLayout
{
self = [super init];
if (self) {
_collectionViewLayout = collectionViewLayout;
}
return self;
}

// Other code here

@end

您可以使用如下代码:

[[HomeViewController alloc] initWithCollectionViewLayout:yourLayout];

否则,您可以执行属性注入(inject),而不是使用构造函数注入(inject)。

// In your .h file
@interface HomeViewController : UIViewController

@property (nonatomic, strong) UICollectionViewLayout* collectionViewLayout;

@end

并使用该代码,例如:

HomeViewController* vc = [[HomeViewController alloc] init];
vc.collectionViewLayout = yourLayout;

关于ios - 如何在 Objective C 中以编程方式设置 Collection View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45938979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com