具有多个子视图的约束

时间:2016-08-05 16:27:07

标签: objective-c user-interface constraints

我的应用程序包含一副纸牌。每张卡片本身都是在一个名为draggableview的类中创建的。 Draggableview具有滚动视图,因此用户可以滚动浏览与卡相关的一堆图像。在第一个视图中,有一些按钮,我在draggableview.xib中创建并在draggableview类中使用它们的方法。但是,当您滚过第一个视图时,所有其他视图都没有这些按钮。

编辑: 我已经部分解决了我的问题。在initwithView中,我添加了每个按钮作为draggableview的子视图。现在,按钮出现在scrollview的所有视图中。在storyboard中,我删除并添加了新约束。在故事板中,按钮会相应移动。但是,在模拟器中,它们会卡在屏幕的右上角。

首次尝试时,我首先使用一个按钮(查看按钮)执行此操作。

我的initWithFrame方法:

 - (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self addSubviewFromNib];
        [self setupView];
        panGestureRecognizer = [[UIPanGestureRecognizer     alloc]initWithTarget:self action:@selector(beingDragged:)];
        cardWidth = frame.size.width;
        cardHeight = frame.size.height;
        type = 0;
        panGestureRecognizer.delegate = self;
        panGestureRecognizer.cancelsTouchesInView = NO;
        _backgroundScrollView.panGestureRecognizer.cancelsTouchesInView = NO;

        likeBadge.image = [UIImage imageNamed:@"likeBadge"];
        likeBadge.alpha = 0;
        likeBadge.layer.zPosition=99;
        passBadge.image = [UIImage imageNamed:@"passBadge"];
        passBadge.alpha = 0;
        passBadge.layer.zPosition=99;
        self.backgroundScrollView.contentSize = self.bounds.size;
        [self addSubview: reviewButton];
        [self addGestureRecognizer:panGestureRecognizer];
    }
    return self;
}

它在模拟器中的外观:enter image description here

1 个答案:

答案 0 :(得分:0)

除了在initWithFrame中添加每个按钮作为draggableView的子视图外,我还以编程方式添加了每个按钮的约束。出于某种原因,这让我可以移动按钮(而故事板中的任何内容都没有成功),现在他们可以查看scrollview的所有视图。