繁体   English   中英

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

[英]Change view properties after adding it as subview

我正在使用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后如何更改该视图的属性?

类似问题

(除了我的评论)

我已经研究了PagedFlowView委托,并且有一种方法

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

您可以使用整数索引从被点击的流视图中获取单元格/页面。 如果您有此文件,则可以编辑其属性。

希望这可以帮助。

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];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM