UIButton UIEdgeInsets imageView 无title

UIButton UIEdgeInsets imageView 无title_第1张图片
Simulator Screen Shot - iPhone 6 - 2018-03-20 at 15.06.10.png

例子中btn为黄色区域,高20,img为绿色区域,高10,原始布局img居中,上下边距分别为5。

可见:
edge指向view中心为正,指向view外围为负;

当edge设为(5,0,0,0)含义为,top边界向内缩5,图片y方向空间减少5,剩余15,img在此区域中居中,扣除高度10,因此上下边距为2.5,而上方加上内缩的5,因此最终效果是上7.5,下2.5;

当edge设为(5,0,5,0)含义为,top和bottom边界分别向内缩5,图片y方向空间减少10,剩余10,img在此区域中居中,刚好。效果与未设置相同;

当edge设为(9,0,9,0)含义为,top和bottom边界分别向内缩9,图片y方向空间减少18,剩余2,img被压缩,只剩2;

当edge设为(-5,0,5,0),上边距向上5,下边距向上5,相当于高度不变,向上平移了5,可见下边距为10;

(-10,0,0,0)上边距上拉10,高度变为30,img在此居中,可见下边距为10,因此正好与(-5,0,5,0)相同;

- (void)createBtn {

    int top = 5; int bottom = 5;
    for (int i = 0 ; i < 12; i ++) {
        UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake((50*i)%300,30 + 50*(i/6), 40, 15)];
        lbl.font = [UIFont systemFontOfSize:8];
        [self.view addSubview:lbl];
        UIButton *btn = [self makebtn];
        btn.frame = CGRectMake((50*i)%300,50 + 50*(i/6), 40, 20);
        btn.backgroundColor = [UIColor colorWithRed:230/255. green:240/255. blue:0 alpha:1];
        if(i== 0) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
        }
        if(i== 1) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(top, 0, 0, 0)];
        }
        if(i== 2) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(0, 0, bottom, 0)];
        }
        if(i== 3) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(top, 0, bottom, 0)];
        }
        if(i== 4) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(-top, 0, 0, 0)];
        }
        if(i== 5) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(0, 0, -bottom, 0)];
        }
        if(i== 6) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(-top, 0,-bottom, 0)];
        }
        if(i== 7) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(top, 0,-bottom, 0)];
        }
        if(i== 8) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(-top, 0,bottom, 0)];
        }
        if(i== 9) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(-2*top, 0,0, 0)];
        }
        if(i== 10) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(0, 0,-2*bottom, 0)];
        }
        if(i== 11) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(2*top-1, 0,2*bottom-1, 0)];
        }
        lbl.text = [NSString stringWithFormat:@"%d,%d,%d,%d",(int)btn.imageEdgeInsets.top,(int)btn.imageEdgeInsets.left,(int)btn.imageEdgeInsets.bottom,(int)btn.imageEdgeInsets.right];

        [self.view addSubview:btn];
    }
}

你可能感兴趣的:(UIButton UIEdgeInsets imageView 无title)