gpt4 book ai didi

ios - 创建一组相同的 UIImageView subview

转载 作者:行者123 更新时间:2023-11-30 13:41:16 24 4
gpt4 key购买 nike

我正在创建一组简单的 UIImageView,它们都使用相同的图像,并且在屏幕上垂直均匀分布。最初,我只是对每个单独 View 的创建进行了硬编码,但我想让它更加紧凑,因为无论如何它们都是相同的图像。

这是我当前的代码,XCode 正在提示它(EXC_BAD_INSTRUCTION)。 loadView 是一个 UIView,用于将所有图像分组在一起。

let items = [UIImageView?](count:7, repeatedValue: nil)

for item in items {
item!.image = UIImage(named: "loading_items")
}

// could potentially iterate through this too
self.loadingView.addSubview(items[0]!)
items[0]!.autoPinEdgeToSuperviewEdge(.Top)
self.loadingView.addSubview(items[1]!)
items[1]!.autoPinEdge(.Top, toEdge: .Bottom, ofView: items[0]!, withOffset: 12)
self.loadingView.addSubview(items[2]!)
items[2]!.autoPinEdge(.Top, toEdge: .Bottom, ofView: items[1]!, withOffset: 12)
self.loadingView.addSubview(items[3]!)
items[3]!.autoPinEdge(.Top, toEdge: .Bottom, ofView: items[2]!, withOffset: 12)
self.loadingView.addSubview(items[4]!)
items[4]!.autoPinEdge(.Top, toEdge: .Bottom, ofView: items[3]!, withOffset: 12)
self.loadingView.addSubview(items[5]!)
items[5]!.autoPinEdge(.Top, toEdge: .Bottom, ofView: items[4]!, withOffset: 12)
self.loadingView.addSubview(items[6]!)
items[6]!.autoPinEdge(.Top, toEdge: .Bottom, ofView: items[5]!, withOffset: 12)

for item in items {
item!.autoAlignAxis(.Vertical, toSameAxisOfView: loadingView) // uses AutoLayout
}

我想知道这段代码有什么问题,以及是否有更有效和“Swift-y”的方法来做到这一点。

最佳答案

使用 UIStackView 并将 UIImageView 添加为堆栈 View 的 subview ,并将 stackview 添加为 super View 的 subview 。这将使您的工作变得轻松//ImageView( View 1, View 2, View 3)

UIImageview *view1 = [[UIImageview alloc] init];
view1.backgroundColor = [UIColor blueColor];
[view1.heightAnchor constraintEqualToConstant:100].active = true;
[view1.widthAnchor constraintEqualToConstant:120].active = true;

UIStackView *stackView = [[UIStackView alloc] init];
stackView.axis = UILayoutConstraintAxisVertical;
stackView.distribution = UIStackViewDistributionEqualSpacing;
stackView.alignment = UIStackViewAlignmentCenter;
stackView.spacing = 30;


[stackView addArrangedSubview:Imageview1];
[stackView addArrangedSubview:Imageview2];
[stackView addArrangedSubview:Imageview3];

stackView.translatesAutoresizingMaskIntoConstraints = false;
[self.view addSubview:stackView];


//Layout for Stack View
[stackView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = true;
[stackView.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = true;

关于ios - 创建一组相同的 UIImageView subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35543669/

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