【问题标题】:How do I access a button in a subview如何访问子视图中的按钮
【发布时间】:2013-08-20 01:08:58
【问题描述】:

我想在我拥有的水平滚动中实现这种淡入/淡出,但我不知道如何访问我的 UIScrollView 子视图中的按钮。这就是我要实现的Fade in/out stackoverflow

这是我的代码...

        Game *game = (Game *)[_schedule.games objectAtIndex:i];
        UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, 20, 150, 100)];
        [button setBackgroundImage:[UIImage imageNamed:game.opponent] forState:UIControlStateNormal];
        //[button setTitle:game.opponent forState:UIControlStateNormal];
        [_gameScrollList addSubview:button];

如何将观察者添加到我的按钮,可以这样做吗?

        [self.scrollView addObserver:[self.contentViews objectAtIndex:i] 
                          forKeyPath:@"contentOffset" 
                             options:NSKeyValueObservingOptionNew
                             context:@selector(updateAlpha:)];

【问题讨论】:

  • 让我看看是否理解正确:您有一个带有按钮的滚动视图,并且您想要在滚动它们时使用此淡入/淡出动画??请在您的问题中更清楚

标签: ios uiview uibutton subviews


【解决方案1】:

要访问添加为子视图的此按钮的引用,您可以:

  • 将此按钮用作 iVar,保存引用以供以后使用;

  • 同样,将此按钮用作属性;

  • 遍历 _gameScrollList 的子视图,寻找 UIButton 类的子视图(不推荐,只有当它只有一个 UIButton 作为子视图时才能正常工作)

如何实施第二种方法的示例。只需声明一个属性:

@property(nonatomic, strong) UIButton *button;

然后:

    Game *game = (Game *)[_schedule.games objectAtIndex:i];
    self.button = [[UIButton alloc] initWithFrame:CGRectMake(x, 20, 150, 100)];
    [self.button setBackgroundImage:[UIImage imageNamed:game.opponent] forState:UIControlStateNormal];
    //[self.button setTitle:game.opponent forState:UIControlStateNormal];
    [_gameScrollList addSubview:self.button];

所以,之后,当你想在某个地方访问这个按钮时,只需调用属性

self.button.alpha = 0.5; //example of interation with your button

如果这不是您要查找的内容,您确实应该编辑您的问题以使其更清楚。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2020-09-05
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2017-12-27
    相关资源
    最近更新 更多