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

  • 相关阅读:
    解决curl请求字段中带中文出错的问题
    字体下载
    Qt在windows与Mac OS中获取执行程序版本号
    QProcess启动不了外部程序的问题
    (Qt5Core.dll)处有未经处理的异常: 请求了严重的程序退出。
    QLabel
    解决接收命令行参数的数据中丢失双引号的问题
    QFile保留指定位置的数据
    ubuntu下使用docker安装部署openstf
    远程连接安卓设备步骤
  • 原文地址:https://www.cnblogs.com/shanpow/p/4133069.html
Copyright © 2020-2023  润新知