2014-01-24 90 views
1

我有一个屏幕,其中包含多个UIImages(它们的数量和大小只在运行时已知,所以我以编程方式添加它们)和这些UIImages下面的一些固定按钮。布局视图下方另一个编程创建的视图

如何让按钮显示在所有图片下?

我已经试过

1)认沽按钮和图像为2点独立的意见,然后将它们之间添加约束。没有结果,按钮隐藏在图像后面。
2.)将按钮放入单独的视图并在代码中设置约束(尝试viewDidLoad和viewDidAppear)。约束在容器视图和屏幕顶部之间设置,具体取决于图像的大小和数量。的代码 示例:

-(void) viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    NSInteger totalImages = [self.object.fullphotos count]; 
    self.labelsTopConstraint.constant = totalImages*(imageHeight + 20) + 10; 
} 

在情况2层中的按钮被定位右,但不向触摸作出响应。

我应该如何正确布置一切?

在此先感谢!

回答

1

为这些图像取一个表格并在最后一个单元格中添加按钮。

+0

谢谢,使用tableView并将每个图像或按钮放在单独的单元格中。 – Egor

1

的最佳方法是创建一个带有刷新方法的对象,可以在viewDidAppear

被称为

MyObject.h

@interface MyObject : UIViewController 
@property (nonatomic,strong) UIImageview *img; 
@property (nonatomic,strong) UIButton *btn; 
- (void) refresh; 
在MyObject.m

- (void)viewDidLoad { 
    [self.btn addTarget:self action:@selector(myMethod:) forControlEvents:UIControlEventTouchUpInside]; 
} 


- (void) refresh { 
    //make your settings here 
} 

-(void)myMethod { 
    //your button action here 
} 

然后

在控制器如果您的物体处于NSArray中:

-(void) viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 
    for (MyObject *myObj in objectsArray) { 
     @autoreleasePool { 
      [myObj refresh]; 
     } 
    } 
}