http://blog.csdn.net/lxp1021/article/details/43952551

今天在开发OS界面的时候,遇到通过界面UIview viewWithTag:(int)findTag选择器定位界面元素的问题,以下把在界面中给元素打Tag,以及通过选择器查找界面元素的代码贴出来,供以后使用:

界面元素打tag

  1. //事件监听的问题
  2. CGRect btn2Frame = CGRectMake(100.0, 150.0, 60.0, 44.0);
  3. //两种不同的方式创建
  4. UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  5. btn2.frame =btn2Frame;
  6. //设置Title
  7. [btn2 setTitle:@"BTN2" forState:UIControlStateNormal];
  8. [btn2 setTag:10001];
  9. //[btn2 setBackgroundImage:[UIImage imageNamed:@"pic.png"] forState:UIControlStateNormal];
  10. [btn2 setBackgroundColor:[UIColor blueColor]];
  11. [btn2 addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
  12. [self.view addSubview:btn2];
  13. //事件监听的问题
  14. CGRect btn1Frame = CGRectMake(200.0, 150.0, 60.0, 44.0);
  15. //两种不同的方式创建
  16. UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  17. btn1.frame =btn1Frame;
  18. //设置Title
  19. [btn1 setTitle:@"BTN1" forState:UIControlStateNormal];
  20. [btn1 setTag:10002];
  21. //[btn2 setBackgroundImage:[UIImage imageNamed:@"pic.png"] forState:UIControlStateNormal];
  22. [btn1 setBackgroundColor:[UIColor blueColor]];
  23. [btn1 addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
  24. [self.view addSubview:btn1];
  25. CGRect workingFrame;
  26. workingFrame.origin.x = 15;
  27. workingFrame.origin.y = 400;
  28. workingFrame.size.width = 140;
  29. workingFrame.size.height = 40;
  30. for(int i = 0; i < 6; i++)
  31. {
  32. //UIView *myView = [[UIView alloc] initWithFrame:workingFrame];
  33. UIButton *myView =[[UIButton alloc] initWithFrame:workingFrame];
  34. [myView setTag:i];//标记方块
  35. [myView setBackgroundColor:[UIColor blueColor]];
  36. // NSString tit = "Button"i;
  37. //NSLog(@"this is Button %d", i);
  38. [myView setTitle:@"Button %d" forState:UIControlStateNormal];
  39. workingFrame.origin.x = workingFrame.origin.x + workingFrame.size.width + 10;
  40. [myView addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
  41. [self.view addSubview:myView];
  42. }

在方法中使用tag选择器定位元素:

    1. -(void)btnPressed:(id)sender{
    2. UIButton *thisBtn = (UIButton*)sender;
    3. //thisBtn.hidden = YES;
    4. //self.view viewWithTag:[00002];
    5. UIButton *myButton = (UIButton *)[self.view viewWithTag:(10002)];
    6. myButton.hidden = YES;
    7. NSLog(@"this button tag is %d",thisBtn.tag);
    8. //NSLog(@"self.view subViews %@",self.view.subviews);
    9. //    UIButton* thisBtn = (UIButton *)sender;
    10. //    [[[UIAlertView alloc] initWithTitle:@"Button" message:[NSString stringWithFormat: @"This is button:%@",thisBtn] delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil] show];
    11. //    NSLog(@"this tag is %d",btn.tag);
    12. }

【iOS开发】IOS界面开发使用viewWithTag:(int)findTag方法获取界面元素的更多相关文章

  1. iOS控件——UIView的viewWithTag:(int)findTag方法描述

    UIView拥有一个viewWithTag:(int)findTag方法,调用方式为[MyView viewWithTag:整形数字]该方法返回tag == findTag的控件.ios控件中允许多个 ...

  2. 使用MonoTouch.Dialog简化iOS界面开发

    MonoTouch.Dialog简称MT.D,是Xamarin.iOS的一个RAD工具包.它提供易于使用的声明式API,不需要使用导航控制器.表格等ViewController来定义复杂的应用程序UI ...

  3. iOS界面开发

    [转载] iOS界面开发 发布于:2014-07-29 11:49阅读数:13399 iOS 8 和 OS X 10.10 中一个被强调了多次的主题就是大一统,Apple 希望通过 Hand-off ...

  4. iOS 界面开发

    iOS 自动布局 iOS 界面 之 EALayout 无需反复编译,可视化实时界面,告别Storyboard AutoLayout Xib等等烦人的工具 iOS应用国际化教程(2014版) iOS开发 ...

  5. iOS开发之如何跳到系统设置里的各种设置界面

    跳到更多设置界面 除了跳到WiFi设置界面,能不能跳到其他的设置界面呢?比如:定位服务.FaceTime.音乐等等.都是可以的,一起来看看如何实现的! 定位服务 定位服务有很多APP都有,如果用户关闭 ...

  6. iOS开发系列--网络开发

    概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...

  7. 《转》iOS音频视频初级开发

    代码改变世界 Posts - 73, Articles - 0, Comments - 1539 Cnblogs Dashboard Logout HOME CONTACT GALLERY RSS   ...

  8. Swift开发iOS应用过程中的问题和解决记录

    虚拟机里安装OSX+XCode开发环境 用真机的请直接跳过这个部分. 主要是在VitrualBox里安装mac系统和xcode,参考这篇教程,VirtualBox的版本是4.3.18 r96156,O ...

  9. Xamarin体验:使用C#开发iOS/Android应用

    Xamarin是Mono创始人Miguel de Icaza创建的公司,旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发.   简介 Xamarin是基于Mo ...

随机推荐

  1. SecureCRT 个人使用爱好配置。

    1.设置默认启动会话设置. 2.设置执行 ls命令显示文件夹,各种文件,不同的对比颜色 2.1 设置前: 2.2 设置后: 3. 如果出现会话框中文乱码 ,设置以下选项 4 . 更改 命令 ls -a ...

  2. vue.esm.js:578 [Vue warn]: Missing required prop

    问题: 解决: required: true,属性是,这个必须填写

  3. 构建高可靠hadoop集群之3- Quorum Journal Manager

    在正式环境中,搭建高可靠(ha)的系统是必须的. 例如oralce的rac,apache集群,windows服务器集群 本文不再赘言ha的重要性. 本文主要是对 http://hadoop.apach ...

  4. javascript--BOM的onload事件和onunload事件

    1.onload事件 onload,页面加载后执行,所谓页面加载完成,指页面上所有的元素创建完毕,引用的所有的外部资源(js.css.图片)等下载完毕. 所以onload执行的比较晚,因为如果页面上有 ...

  5. JavaScript -- 继承与原型链

    JavaScript对象有一个指向一个原型对象的链,当试图访问一个对象的属性的时候,他不仅仅会在该对象上面搜寻,还会搜寻该对象的原型,以及对象的原型的原型,依次层层搜索,直到找到名字匹配的属性或者到达 ...

  6. 吐血分享:QQ群霸屏技术教程2017(维护篇)

    排名上去,并不是终极稳定,日常维护相当重要. 群排名做上去了,如果不去维护,排名很可能会下去,尤其是咱们做了很多群的时候,完全不会留意到. 为什么不稳定? 1.活跃度下去了,排名当然不稳定,这个需要日 ...

  7. ECSHOP和SHOPEX快递单号查询EMS插件V8.6专版

    发布ECSHOP说明: ECSHOP快递物流单号查询插件特色 本ECSHOP快递物流单号跟踪插件提供国内外近2000家快递物流订单单号查询服务例如申通快递.顺丰快递.圆通快递.EMS快递.汇通快递.宅 ...

  8. keil5 mdk调用外部编辑器notepad++、sublime3、VSCode总结

    1.打开keil主界面,点击菜单栏Tools菜单,选择如下图所示的选项. 2.点击如下图所示的菜单上红笔标注的地方,给这个工具命名,如notepad++.sublime3.vscode等,如下图, 并 ...

  9. hdu6370 并查集+dfs

    Werewolf Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  10. 使用source命令解决mysql导入乱码问题

    设定编码格式:mysql -u root -p --default-character-set=utf8 use dbname source /root/newsdata.sql