美文网首页
UIButton UIEdgeInsets imageView

UIButton UIEdgeInsets imageView

作者: 米古月_f198 | 来源:发表于2018-03-20 15:03 被阅读0次
Simulator Screen Shot - iPhone 6 - 2018-03-20 at 14.55.49.png

在理解上一篇文章基础上,可见btn中默认img和title水平布局,img居左,title居右;
img中心偏左,与btn中心相差btn.titleLabel.intrinsicContentSize.width/2;
title中心偏右,与btn中心相差btn.currentImage.size.width/2;
edge最好设置成负值(图中第二种设置),即向外延伸区域,或者left与right同时设置,平移中心(图中第四种设置),避免压缩区域,导致显示不全设置出错(图中第三种设置);

- (void)createBtn {
    
    int top = 0; int bottom = 0;
    int imgw = 0; int titlew = 0;
    for (int i = 0 ; i < 4; i ++) {
        UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake((50*i)%300,20 + 50*(i/6), 40, 10)];
        lbl.font = [UIFont systemFontOfSize:8];
        [self.view addSubview:lbl];
        UILabel *lbl2 = [[UILabel alloc] initWithFrame:CGRectMake((50*i)%300,30 + 50*(i/6), 40, 10)];
        lbl2.font = [UIFont systemFontOfSize:8];
        [self.view addSubview:lbl2];
        UIButton *btn = [self makebtn];
        imgw = btn.currentImage.size.width;
        titlew = btn.titleLabel.intrinsicContentSize.width;
        
        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)];
            [btn setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];

        }
        if(i== 1) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(top, 0, 0, -titlew)];
            [btn setTitleEdgeInsets:UIEdgeInsetsMake(top, -imgw, 0, 0)];
        }
        if(i== 2) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(0, titlew, bottom, 0)];
            [btn setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, bottom, imgw)];
        }
        if(i== 3) {
            [btn setImageEdgeInsets:UIEdgeInsetsMake(top, titlew/2, bottom, -titlew/2)];
            [btn setTitleEdgeInsets:UIEdgeInsetsMake(top, -imgw/2, bottom, imgw/2)];
        }

        lbl.text = [NSString stringWithFormat:@"%d,%d,%d,%d",(int)btn.imageEdgeInsets.top,(int)btn.imageEdgeInsets.left,(int)btn.imageEdgeInsets.bottom,(int)btn.imageEdgeInsets.right];
        lbl2.text = [NSString stringWithFormat:@"%d,%d,%d,%d",(int)btn.titleEdgeInsets.top,(int)btn.titleEdgeInsets.left,(int)btn.titleEdgeInsets.bottom,(int)btn.titleEdgeInsets.right];

        [self.view addSubview:btn];
    }
}

相关文章

网友评论

      本文标题:UIButton UIEdgeInsets imageView

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