• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 将 UIVIew 与 IBAction 中的 UIButton 关联

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:32:50 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个带有 6 个按钮和 6 个 subview 的 View Controller (在 Storyboard中)。这些 subview 连接到 IBOutlets 并命名为“mySubView1”、“mySubView2”等:

@property (weak, nonatomic) IBOutlet UIView *mySubView1;
@property (weak, nonatomic) IBOutlet UIView *mySubView2;

我想根据按下的按钮为 subview 的 alpha 值设置动画。所有 6 个按钮都连接到同一个 IBAction(如下),每个按钮都有一个标签(1 到 6)。

如何动态获取 subview 属性名?例如,mySubView1 if sender.tag = 1 例如,在下面的动画 block 中:

- (IBAction)animateSubviewsid)sender {

[UIView animateWithDuration:0.4
                      delay: 0.0
                    options: UIViewAnimationOptionCurveEaseOut
                 animations:^{
                      self.mySubView1.alpha = 1;
                 }
                 completion:^(BOOL finished){

                 }];

}

所以我需要的是:self.mySubView[sender tag].alpha = 1 之类的东西,但我很难过,所以任何建议都非常感谢。

非常感谢



Best Answer-推荐答案


1) 为 subview 分配标签

将标签分配给您的 UIViews,例如,与标签为 1 的按钮对应的 View 可能有标签 101。

- (IBAction)animateSubviewsid)sender {

[UIView animateWithDuration:0.4
                      delay: 0.0
                    options: UIViewAnimationOptionCurveEaseOut
                 animations:^{
                      UIView *subview = [self.view viewWithTag(UIButton*)sender).tag + 100]; 
                      subview.alpha = 1;
                 }
                 completion:^(BOOL finished){

                 }];
}

2) 使用动态选择器(回答您的原始问题)

您可以使用返回 SEL 的方法 NSSelectorFromString

UIView *subview = [self performSelector:NSSelectorFromString([NSString stringWithFormat"mySubView%d", ((UIButton*)sender).tag])];

关于ios - 将 UIVIew 与 IBAction 中的 UIButton 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15334752/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap