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