好的,我有一个关于如何在swift中实现这一点的一般概念,但我仍然有点困惑。
所以我希望能够以编程方式创建新对象(比如新的UIimageview),但是它们相对于最后一个对应。我不希望所有的图像都在彼此之上,那么如何检索创建的最新对象的索引?
实施例。例如,如果我想要并排放置20个“苹果”物品,将它们单独放置在故事板上是不切实际的,而是通过正确位置的代码创建它们。
答案 0 :(得分:2)
您想要创建与最后一个对象相关的20个对象。你的意思是相关的。我假设你的20 Apple
示例要在有序列表的视图中显示它们。
如果是这种情况,那么您可以使用UITableView
或UICollectionView
并通过在UITableViewCell
或UICollectionViewCell
中将其添加为子视图来显示每个图片。
让我知道这个解决方案适合您。如果没有,请在问题中提供更多详细信息。
答案 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个对象(在这种情况下是苹果)并将它们分开,并为每个对象附加一个新标记,因此我知道它们的创建顺序。