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的时候再触发事件等),那么第二种方案就非常合适了。

  • 相关阅读:
    NFS+DHCP+TFTP无人值守安装linux
    systemverilog学习(6)并发进程与内部通信
    systemverilog学习(5)procedural statement ,task ,function&automatic
    systemverilog学习(4)动态数组
    systemverilog学习(3)基本数据类型
    systemverilog学习(2)interface
    systemverilog学习(1)基础
    Verilog学习(13)PLL与搜索代码
    Verilog学习(12)实战之强度与竞争
    verilog学习(11)实战之计数器
  • 原文地址:https://www.cnblogs.com/shanpow/p/4133069.html
Copyright © 2011-2022 走看看