zoukankan      html  css  js  c++  java
  • IOS-UI基础-按钮扩展

    按钮的状态

    Default 普通/默认状态

    Highlighted 高亮状态

    如果按钮被点击, 就会自动的切换到高亮状态

    Selected 选中状态

    通过设置 selected = YES 的时候表示按钮被选中

    Disabled 禁用状态

    通过设置  enabled = NO 表示禁用状态, 一旦被禁用, 就不会响应任何点击事件

    backgroundImage 按钮有多大, 图片就会显示多大

    image  图片有多大, 按钮就会被撑到图片的大小

    如果同时设置了 tile  backgroundImage : 文字 显示到  图片的正上方

    如果同时设置了 title  image     : 图片在左侧, 文字在右侧

    如果设置 button 的 title , image , backgroundImage 的时候, 一定要分状态设置

    坐标系概念

    frame : 是控件以父view的左上角 为坐标原点 

    bounds : 是控件以自身的左上角为坐标原点, 一般 x = 0, y = 0

    center : 是控件以父view的左上角为坐标原点 x, y 

    不能直接修改对象的结构体的成员变量

    通过复制 粘贴得到控件, 需要把之前的连线给清除掉

    // 使用这种方式定义枚举

    typedef NS_ENUM(NSInteger, ZBDirection) {

        ZBDirectionUp,

        ZBDirectionDown,

        ZBDirectionLeft,

        ZBDirectionRight

    };

    //**********************

    两种动画方式

    1. 首尾式动画

    // 开始动画

         [UIView beginAnimations:nil context:nil];

         // 执行动画的操作

         

         // Duration 持续时间

         #warning  要放到执行动画操作代码的前面才会生效

         [UIView setAnimationDuration:0.5];

         

         self.zbButton.frame = tempFrame;

         

         // 提交动画

         [UIView commitAnimations];

         2. block 动画 (重点掌握 block动画)

         [UIView animateWithDuration:0.5 animations:^{

            // 放置 执行动画的操作

            self.zbButton.frame = tempFrame;

        }];

    button的实例化方式

      buttonWithType:

         

         initWithFrame: UI控件独有的实例化方法

         init : 所有的对象 都具有的实例化方法

    为button设置背景图片

    IImage *image = [UIImage imageNamed:@"btn_01"];

        

    [button setBackgroundImage:image forState:UIControlStateNormal];

    /**

         button : 要添加监听方法的按钮

         Target : 监听者

         action : 当按钮被点击的时候监听者要执行的方法

         forControlEvents : 触发点击的 事件

         */

        [button addTarget:self

                   action:@selector(didClickButton:)

         forControlEvents:UIControlEventTouchUpInside];

    stroryboard : 隐藏了很多细节

    纯代码 : 可以很方便的做修改及调试

  • 相关阅读:
    干货—MySQL常见的面试题+索引原理分析!
    如何设计一个百万级的消息推送系统
    【金三银四跳槽季】Java工程师如何在1个月内做好面试准备?
    Nginx实现请求的负载均衡 + keepalived实现Nginx的高可用
    java函数式编程之Supplier
    SpringMVC + MyBatis + Mysql + Redis(作为二级缓存) 配置
    Redis创建集群报错
    阿里云服务器Tomcat无法从外部访问
    SSM框架学习之高并发秒杀业务--笔记5-- 并发优化
    在windows上部署使用Redis
  • 原文地址:https://www.cnblogs.com/DreamLinku/p/5389334.html
Copyright © 2011-2022 走看看