zoukankan      html  css  js  c++  java
  • iOS开发——UI基础-按钮内边距,图片拉伸

    一、内边距

    UIButton有三个属性,分别可以设置按钮以及内部子控件的内边距

    1、contentEdgeInsets

      如果是设置contentEdgeInsets, 会把UIImageView和UIlabel当做一个整体移动

    btn.contentEdgeInsets = UIEdgeInsetsMake(30, 0, 0, 0);

    对应状态:

    2、titleEdgeInsets/imageEdgeInsets

      如果是设置titleEdgeInsets/imageEdgeInsets. 那么不会影响到另外一个, 也就是只会改变当前设置的这个控件

        btn.titleEdgeInsets = UIEdgeInsetsMake(0, 30, 0, 0);
    
        btn.imageEdgeInsets = UIEdgeInsetsMake(30 ,0 , 0, 0);

    二、图片拉伸

    1.iOS5以前

    UIButton *btn = [[UIButton alloc] init];
    
        UIImage *image = [UIImage imageNamed:@"common_button_blue_highlighted"];
    
    
    
        // LeftCapWidth: 左边多少不能拉伸
    
        // 右边多少不能拉伸 = 控件的宽度 - 左边多少不能拉伸 - 1
    
        //  right  =  width - leftCapWidth - 1
    
        // 1 = width - leftCapWidth - right
    
     
    
        // topCapHeight: 顶部多少不能拉伸
    
        // 底部有多少不能拉伸 = 控件的高度 - 顶部多少不能拉伸 - 1
    
        //  bottom =  height - topCapWidth - 1
    
        // 1 = height - topCapWidth - bottom
    
        UIImage *newImage = [image stretchableImageWithLeftCapWidth:5 topCapHeight:5];

    2.iOS5开始

        // UIEdgeInsets是告诉系统哪些地方需要受保护, 也就是不可以拉伸
    
        // resizableImageWithCapInsets默认拉伸方式是平铺
    
        UIEdgeInsets insets = UIEdgeInsetsMake(image.size.height * 0.5, image.size.width * 0.5, image.size.height * 0.5, image.size.width * 0.5);
    
        UIImage *newImage =  [image resizableImageWithCapInsets:insets];

    3.iOS6开始

      // resizingMode指定拉伸模式
    
        // 平铺
    
        // 拉伸
    
        UIEdgeInsets insets = UIEdgeInsetsMake(5, 5, 5, 5);
    
        UIImage *newImage =  [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];
    
     
    
        [btn setBackgroundImage:newImage forState:UIControlStateNormal];
    
        btn.frame = CGRectMake(100, 100, 200, 80);
    
        [self.view addSubview:btn];
    将来的你会感谢今天如此努力的你! 版权声明:本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    Lambert 光照模型
    向前兼容和向后兼容
    eclipse如何设置时常挂提示
    eclipse首次使用的基本设置
    eclipse如何设置UTF-8
    CSS中 清除浮动解决“包含问题”
    CSS一些设置用法
    浅谈CSS布局
    No.4小白的HTML+CSS心得篇
    No.3小白的HTML+CSS心得篇
  • 原文地址:https://www.cnblogs.com/chglog/p/4655888.html
Copyright © 2011-2022 走看看