• iOS视图边框的简单做法


    我们绘制UI界面的时候,一般我们做边框是用layer,然后再给它上面添加阴影什么的,我比较喜欢用下面这个方法,

    UI弄几张边框的图片,用代码给图片拉伸

    - (UIImage *)changeBorderImage:(UIImage *)borderImage {
        UIImage *image = borderImage;
        CGFloat top = 2; // 顶端盖高度
        CGFloat bottom = 2 ; // 底端盖高度
        CGFloat left = 2; // 左端盖宽度
        CGFloat right = 2; // 右端盖宽度
        UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right);
        // 指定为拉伸模式,伸缩后重新赋值
        image = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];
        return image;
    }

    自定义一个边框视图或者在你的视图下面添加一个带有拉伸后的UIImage的UIImageView就行了

    全部代码:

    BorderView.h

    //
    //  BorderView.h
    //  border_creat
    //
    //  Created by 谭启宏 on 15/12/15.
    //  Copyright © 2015年 谭启宏. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface BorderView : UIImageView
    
    @property (nonatomic,strong)UIImage *borderImage;
    
    - (instancetype)initWithFrame:(CGRect)frame borderImage:(UIImage *)borderImage;
    
    @end

    BorderView.m

    //
    //  BorderView.m
    //  border_creat
    //
    //  Created by 谭启宏 on 15/12/15.
    //  Copyright © 2015年 谭启宏. All rights reserved.
    //
    
    #import "BorderView.h"
    
    @implementation BorderView
    
    - (instancetype)initWithFrame:(CGRect)frame borderImage:(UIImage *)borderImage {
        self  =[super initWithFrame:frame];
        if (self) {
            self.image = [self changeBorderImage:borderImage];
            
        }
        return self;
    }
    
    
    - (void)setBorderImage:(UIImage *)borderImage {
        self.borderImage = [self changeBorderImage:borderImage];
    }
    
    - (UIImage *)changeBorderImage:(UIImage *)borderImage {
        UIImage *image = borderImage;
        CGFloat top = 2; // 顶端盖高度
        CGFloat bottom = 2 ; // 底端盖高度
        CGFloat left = 2; // 左端盖宽度
        CGFloat right = 2; // 右端盖宽度
        UIEdgeInsets insets = UIEdgeInsetsMake(top, left, bottom, right);
        // 指定为拉伸模式,伸缩后重新赋值
        image = [image resizableImageWithCapInsets:insets resizingMode:UIImageResizingModeStretch];
        return image;
    }
    
    @end

    ViewController.m

    - (void)viewDidLoad {
        [super viewDidLoad];
        self.view.backgroundColor = [UIColor whiteColor];
        BorderView *borderView = [[BorderView alloc]initWithFrame:CGRectMake(100, 100, 100, 50) borderImage:[UIImage imageNamed:@"tool_biankuang2"]];
        [self.view addSubview:borderView];
        
        
        BorderView *borderView1 = [[BorderView alloc]initWithFrame:CGRectMake(100, 200, 150, 100) borderImage:[UIImage imageNamed:@"tool_biankuang2"]];
        [self.view addSubview:borderView1];
        
        BorderView *borderView2 = [[BorderView alloc]initWithFrame:CGRectMake(100, 350, 30, 100) borderImage:[UIImage imageNamed:@"tool_biankuang"]];
        [self.view addSubview:borderView2];
        
    }

    效果图:

    demo地址:http://pan.baidu.com/s/1dEpedBr

    tips:图片只需要上下左右距离边部有几象数,中间空一部分就行了

  • 相关阅读:
    sql order by 结合case when then
    若sql语句中order by指定了多个字段,怎么排序?
    sql 按字段指定值排序
    mybatis Condition查询
    java.lang.OutOfMemoryError: GC overhead limit exceeded
    Could not open JDBC Connection for transaction
    Lock wait timeout exceeded; try restarting transaction
    [转载]Windows x64下配置ffmpeg的方法
    java第七节 IO
    mysql触发器 学习
  • 原文地址:https://www.cnblogs.com/hxwj/p/5047849.html
Copyright © 2020-2023  润新知