美文网首页
UIButton UIEdgeInsets imageView

UIButton UIEdgeInsets imageView

作者: 米古月_f198 | 来源:发表于2018-03-20 14:16 被阅读0次
    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

          本文链接:https://www.haomeiwen.com/subject/daxbqftx.html