将其添加为子视图后更改视图属性

时间:2013-11-18 16:18:15

标签: ios iphone objective-c uiview

我正在使用pagedFlowView创建应用。我有自定义视图( mainDetailV ),ImageView作为背景和标签在顶部。我正在使用PagedFlowView委托方法来初始化其中的所有视图:

- (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后更改此视图的属性?

类似的问题

2 个答案:

答案 0 :(得分:0)

(除了我的评论)

我已经查看了PagedFlowView委托,并且有一个方法

- (void)flowView:(PagedFlowView *)flowView didTapPageAtIndex:(NSInteger)index;

您可以使用整数索引从被点击的流视图中获取单元格/页面。如果你有这个,你可以编辑它的属性。

希望这有帮助。

答案 1 :(得分:0)

mainDetailV的定义是什么?将此设置为Ivar

似乎很奇怪

您应该将mainDetailV创建为本地var,并在返回其值之前将其内容存储在可变数组中。所以:

- (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];
}
相关问题