另一个以编程方式创建的视图下方的布局

时间:2014-01-24 11:53:59

标签: ios iphone objective-c cocoa-touch uibutton

我有一个屏幕,其中包含多个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个按钮位于右侧,但没有响应触摸。

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

提前致谢!

2 个答案:

答案 0 :(得分:1)

最好的方法是使用可在viewDidAppear

中调用的刷新方法创建Object

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];
        }
    }
}

答案 1 :(得分:1)

对这些图像进行Tableview并在最后一个单元格中添加按钮。