Xcode如何创建相对于最后一个的新对象? (迅速)

时间:2016-01-25 08:12:13

标签: ios xcode swift loops uiimageview

好的,我有一个关于如何在swift中实现这一点的一般概念,但我仍然有点困惑。

所以我希望能够以编程方式创建新对象(比如新的UIimageview),但是它们相对于最后一个对应。我不希望所有的图像都在彼此之上,那么如何检索创建的最新对象的索引?

实施例。例如,如果我想要并排放置20个“苹果”物品,将它们单独放置在故事板上是不切实际的,而是通过正确位置的代码创建它们。

3 个答案:

答案 0 :(得分:2)

您想要创建与最后一个对象相关的20个对象。你的意思是相关的。我假设你的20 Apple示例要在有序列表的视图中显示它们。

如果是这种情况,那么您可以使用UITableViewUICollectionView并通过在UITableViewCellUICollectionViewCell中将其添加为子视图来显示每个图片。

让我知道这个解决方案适合您。如果没有,请在问题中提供更多详细信息。

答案 1 :(得分:0)

您可以使用<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> <ImageView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout> 属性来操纵frame

的位置

创建新变量以在创建UIImageView之前存储x或y位置,并将其x或y帧设置为这些变量。

然后在使用它创建新的UIImageView之前,只需将高度和空间添加到这些变量。

UIImageView

答案 2 :(得分:0)

感谢您的回答,我使用了seto nugroho的想法。这是我的代码

var numApples = 20    //The amount of objects being created in this case it is apples

var apple: UIImageView?   //Declare the UIImageView 

var xPos:CGFloat = 20.0 


for i in 0...numApples 
{
        var image: UIImage = UIImage(named: "apple")!
        apple = UIImageView(image: image)
        apple!.frame = CGRectMake(xPos,50,40,50)
        xPos += apple!.frame.size.width + 10.0 
        apple!.tag = i
        self.view.addSubview(apple!)
}

所以我有点模糊,但是这段代码只是以编程方式创建了20个对象(在这种情况下是苹果)并将它们分开,并为每个对象附加一个新标记,因此我知道它们的创建顺序。