【问题标题】:UIButton PaddingUIButton 填充
【发布时间】:2013-11-27 08:45:04
【问题描述】:

UIButton 是否有等效的填充,就像在 CSS 中一样?

我似乎对小按钮有问题,所以我想扩大按钮大小以使其易于点击。

我修改了代码来调整 UIButton 的大小并让内容保持原样:

- (void)adjustButtonView:(UIButton *)button toSize:(CGSize)size
{
    CGRect previousFrame = button.frame;
    CGRect newFrame = button.frame;
    newFrame.size = size;
    CGFloat adjustX = (size.width - previousFrame.size.width)/2;
    CGFloat adjustY = (size.height - previousFrame.size.height)/2;
    newFrame.origin.x = previousFrame.origin.x - adjustX;
    newFrame.origin.y = previousFrame.origin.y - adjustY;
    button.frame = newFrame;

    UIEdgeInsets edgeInsets = UIEdgeInsetsMake(adjustY, adjustX, adjustY, adjustX);
    button.contentEdgeInsets = edgeInsets;
}

我只是想知道是否有更简单的方法来扩展 UIButton。

【问题讨论】:

    标签: ios objective-c uibutton


    【解决方案1】:

    我认为没有比您所做的更简单的方法了。但是我们可以通过将方法移动到 UIButton 类别来改进您的代码。

    UIButton+Resize.h

    @interface UIButton (Resize)
    
    - (void)adjustToSize:(CGSize)size;
    
    @end
    

    UIButton+Resize.m

    @implementation UIButton (Resize)
    
    - (void)adjustToSize:(CGSize)size
    {
        CGRect previousFrame = self.frame;
        CGRect newFrame = self.frame;
        newFrame.size = size;
        CGFloat adjustX = (size.width - previousFrame.size.width)/2;
        CGFloat adjustY = (size.height - previousFrame.size.height)/2;
        newFrame.origin.x = previousFrame.origin.x - adjustX;
        newFrame.origin.y = previousFrame.origin.y - adjustY;
        self.frame = newFrame;
    
        UIEdgeInsets edgeInsets = UIEdgeInsetsMake(adjustY, adjustX, adjustY, adjustX);
        self.contentEdgeInsets = edgeInsets;
    }
    
    @end
    

    【讨论】:

    • 是的,我忘记将“按钮”更改为“自我”。谢谢你提醒我。
    【解决方案2】:

    实际上,如果您不想弄乱子类化,有一种非常简单的方法可以扩展 UIButtons 的宽度......试试这个:

    [b setTitle:[NSString stringWithFormat:@"  %@  ", @"Title"] forState:UIControlStateNormal];
    

    【讨论】:

      【解决方案3】:

      不,没有什么像 iOS 的 CSS 或样式表,如果你想调整按钮的大小,你必须手动设置框架。

      为了使这项任务自动化,您可以创建一个按钮并将其子类化,或者使用类别。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-29
        • 2011-07-18
        • 1970-01-01
        • 1970-01-01
        • 2019-10-04
        • 2017-04-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多