【问题标题】:Constraints with multiple subviews具有多个子视图的约束
【发布时间】:2016-08-05 16:27:07
【问题描述】:

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

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

对于第一次尝试,我首先使用一个按钮(查看按钮)进行此操作。

我的 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;
}

它在模拟器中的样子:

【问题讨论】:

  • 哪些是按钮? likeBadgepassBadge?它们是可拖动视图的子视图,而不是滚动视图吗?这会极大地改变我的答案。
  • 不——我认为我所说的按钮是从 addSubViewFromNib 上传的(请参阅我之前关于我的错误的评论)。它们具体是:电话、地图、菜单、评论和分享按钮。是的,它们是 draggableview(nib 文件)的孩子,而不是滚动视图。
  • 您是否将主要内容视图的颜色设置为清除?这与将 alpha 设置为零不同。
  • 像徽章和通过徽章实际上不在主要内容视图中(以防影响您的建议) - 并且将主要内容视图的颜色设置为清除没有做任何事情 - 仍然无法滚动因为使 pcv 成为背景滚动视图的同级而不是子级

标签: objective-c user-interface constraints


【解决方案1】:

除了在 initWithFrame 中将每个按钮添加为 draggableView 的子视图之外,我还以编程方式添加了每个按钮的约束。出于某种原因,这让我可以移动按钮(而情节提要中的任何内容都没有成功),现在它们位于滚动视图的所有视图上。

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    相关资源
    最近更新 更多