根据文本内容调整Button大小

本文介绍了一种使用Swift在iOS应用中动态创建并布局按钮的方法。通过遍历数据源,在UIScrollView中添加UIButton,并根据按钮标题自动调整宽度和位置,实现水平布局效果。
部署运行你感兴趣的模型镜像
CGFloat height = self.scrollView.bounds.size.height;
    CGFloat btnX = 5;
    for (int index = 0; index < dataSource.count; index ++) {
        UIButton *button = [[UIButton alloc] init];
        [self.scrollView addSubview:button];
        [button setTitleColor:[UIColor darkTextColor] forState:UIControlStateNormal];
        [button setTitleColor:[UIColor redColor] forState:UIControlStateSelected];
        button.titleLabel.font = [UIFont systemFontOfSize:16];
        NSString *title = dataSource[index];
        [button setTitle:title forState:UIControlStateNormal];
        //计算宽
        CGSize titleSize = [title sizeWithAttributes:@{NSFontAttributeName: [UIFont fontWithName:button.titleLabel.font.fontName size:button.titleLabel.font.pointSize]}];

    CGFloat    width = titleSize.width+10;

        button.frame = CGRectMake(btnX, 0, width, height);

        [button addTarget:self action:@selector(categoriesBtnAction:) forControlEvents:UIControlEventTouchUpInside];

        btnX += button.frame.size.width;
    }
    self.scrollView.contentSize = CGSizeMake(btnX, height);

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 设置 StackPanel 中 Button 的文本字体大小 在 WPF 中,如果希望在一个 `StackPanel` 布局中调整按钮(Button)中文本的字体大小,可以通过设置 `Button` 控件的 `FontSize` 属性来实现。该属性用于定义按钮中显示内容的字体大小[^2]。 以下是一个示例代码,展示了如何在水平方向的 `StackPanel` 中添加一个具有特定字体大小的按钮: ```xml <StackPanel Orientation="Horizontal"> <Button Content="点击我" FontSize="16"/> </StackPanel> ``` 在这个例子中,按钮的文本“点击我”将以 16 号字体显示。如果需要更复杂的布局,比如同时包含其他控件如 `TextBlock` 或 `ComboBox`,可以继续向 `StackPanel` 中添加这些元素,并为每个 `Button` 单独设置 `FontSize` 属性以满足不同的视觉需求[^1]。 对于更加动态或样式统一的需求,还可以通过定义 `Style` 来集中管理多个按钮的外观特性,包括字体大小。这种方式不仅有助于保持界面的一致性,还能简化 XAML 代码的维护工作。例如: ```xml <Window.Resources> <Style TargetType="Button" x:Key="CustomButtonStyle"> <Setter Property="FontSize" Value="14"/> <!-- 其他样式设置 --> </Style> </Window.Resources> <StackPanel Orientation="Horizontal"> <Button Content="按钮1" Style="{StaticResource CustomButtonStyle}"/> <Button Content="按钮2" Style="{StaticResource CustomButtonStyle}" Margin="10,0"/> </StackPanel> ``` 以上方法允许开发者为所有应用了此样式的按钮提供一致的字体大小和其他视觉属性[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值