zoukankan      html  css  js  c++  java
  • iOS小技巧

    让我们这次直接进入正题,有时候我们想做以下这种界面:

    main_page

    目前我就想到三种方案:

    1. 做一个tableview,然后组织cell的界面如上图所示
    2. 做一个button子类,使得button的界面能如上图所示
    3. 做两个view

    可以看出,第一第二种方案相对来说要麻烦一些,但是好处还是比较明显的就是今后在这个界面上需要更多的功能时,可复用的界面元素更多。尤其是第一种,如果这些功能列表在整个屏幕内放不下时,还可以自动scroll。

    但是第三种方案最大的好处就是简单,当我们需要快速出功能,而且暂时不需要考虑复用的时候,这种方案就体现出优势了。

    我可耻地选择了第三种方案,然后问题来了。。。。因为我之前都习惯使用IBAction的方式来绑定事件,这次我也习惯性地这样做了,突然发现IBAction根本绑定不到UIView这样的元素上去!

    can't bind

    这种时候又要请出万能的google然后引导到stackoverflow。。。。。。熟悉的味道

    第一种方案

    在view上绑定一个点击手势,代码如下:

      UITapGestureRecognizer *fun1TapGesture = [[UITapGestureRecognizer alloc] 
                                                    initWithTarget:self 
                                                            action:@selector(fun1:)];
      [self.fun1View addGestureRecognizer:fun1TapGesture];
    

    第二种方案(抱歉实在找不到原链接了)

    这种方法个人感觉有点trick,假设选中了“功能一”这个view,然后在右边属性栏里如下选择,即把UIView改为UIControl:

    change class

    然后就会发现IBAction能绑定了:

    can bind

    总结

    如果你只是想能点击触发一些事件,那么第一种方案就非常方便。但是如果你想根据不同的点击事件做一些不同的事件(比如touch down的时候做一些界面的改变,touch up的时候再触发事件等),那么第二种方案就非常合适了。

  • 相关阅读:
    技术文档生成工具:appledoc
    Runtime之方法
    swift开发新项目总结
    iOS调试通过UILocalNotification或RemoteNotification启动的app
    github源码学习之UIImage+YYWebImage
    用NSAttributedString实现简单的图文混排
    用block做事件回调来简化代码,提高开发效率
    用drawRect的方式实现一个尺子
    Xcode自定义代码块
    简单的数据库设计及使用(FMDB)
  • 原文地址:https://www.cnblogs.com/shanpow/p/4133069.html
Copyright © 2011-2022 走看看