Ios 将视图添加为子视图后更改视图属性
我正在创建我正在使用的应用程序。我有自定义视图(mainDetailV),以ImageView为背景,标签在顶部。我正在使用PagedFlowView委托方法初始化其中的所有视图:Ios 将视图添加为子视图后更改视图属性,ios,iphone,objective-c,uiview,Ios,Iphone,Objective C,Uiview,我正在创建我正在使用的应用程序。我有自定义视图(mainDetailV),以ImageView为背景,标签在顶部。我正在使用PagedFlowView委托方法初始化其中的所有视图: - (UIView *)flowView:(PagedFlowView *)flowView cellForPageAtIndex:(NSInteger)index{ mainDetailV = (MainDetailView *)[flowView dequeueReusableCell]; i
- (UIView *)flowView:(PagedFlowView *)flowView cellForPageAtIndex:(NSInteger)index{
mainDetailV = (MainDetailView *)[flowView dequeueReusableCell];
if (!mainDetailV) {
mainDetailV = [[[NSBundle mainBundle] loadNibNamed:@"MainDetailView" owner:self options:nil] lastObject];
//mainDetailV.layer.cornerRadius = 6;
mainDetailV.layer.masksToBounds = YES;
}
return mainDetailV;
}
它在pageFlowView中添加了5次我的视图
我想在点击imageView时触发一些动作,比如更改标签的alpha,但我真的不知道怎么做
我的主要问题是,在将此视图添加到pagedViewController后,如何更改其属性
类似问题
- (除了我的评论)
我已经研究了PagedFlowView委托,其中有一个方法
- (void)flowView:(PagedFlowView *)flowView didTapPageAtIndex:(NSInteger)index;
您可以使用整数索引从点击的流视图中获取单元格/页面。如果你有这个,你可以编辑它的属性
希望这有帮助。mainDetailV的定义是什么?把这一套当作Ivar似乎很奇怪 您应该将mainDetailV创建为本地变量,并在返回其值之前将其内容存储在可变数组中。因此:
- (UIView *)flowView:(PagedFlowView *)flowView cellForPageAtIndex:(NSInteger)index{
id mainDetailV = [flowView dequeueReusableCell];
if (!mainDetailV) {
mainDetailV = [[[NSBundle mainBundle] loadNibNamed:@"MainDetailView" owner:self options:nil] lastObject];
//mainDetailV.layer.cornerRadius = 6;
mainDetailV.layer.masksToBounds = YES;
}
[usedViewControllers insertObject:mainDetailV atIndex:index];
return mainDetailV;
}
其中usedViewControllers
是一个NSMutableArray实例变量
然后您可以像这样使用委托方法:
- (void)flowView:(PagedFlowView *)flowView didTapPageAtIndex:(NSInteger)index;
{
MainDetailView *view = (MainDetailView *)[usedViewControllers objectAtIndex:index];
}
如果要在用户与图像交互时更改属性,则必须在
UIImageView
上添加uigestureRecognitizer
。这里是苹果文档的链接。请注意,UIImageView
默认情况下禁用了用户交互,您必须启用它才能接收触摸。我从未使用过PagedFlowView。但我猜有一种委托方法,如“-(UIView*)flowView:(PagedFlowView*)flowView didTapOnCell”或类似的方法。在这种方法中,您应该能够访问单元格。如果没有,您还可以将手势识别器添加到单元格中,并将方法作为目标,您可以在其中访问手势的发送者。这是你的手机。是的,谢谢。但我实际想要的是更改mainDetailV的属性,而不是包含mainDetailView的单元格。在代码中,您将mainDetailV设置为单元格,因为在-(UIView*)flowView:(PagedFlowView*)flowView cellForPageAtIndex:(NSInteger)索引中返回一个单元格作为结果。因此,如果你访问你的单元格,你也可以访问你的viewWell,那么我需要将它的返回值更改为MainDetailView*以访问我的自定义视图的属性。不,只要mainDetailV是uiview的子类,你就不必这样做。但稍后,您将不得不强制转换要维护的单元格。您标记为正确的答案显示了该如何操作。