0

我使用了以下代码并得到如下错误,即小文本中的空间更少,长文本中的空间更多

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 40)];

    UIButton *BtnBreadcrumb = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [BtnBreadcrumb addTarget:self action:@selector(selectBtnBreadcrumb:)
     forControlEvents:UIControlEventTouchUpInside];
    [BtnBreadcrumb setTitle:selectedDepartment forState:UIControlStateNormal];
    BtnBreadcrumb.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
    BtnBreadcrumb.tintColor=ThemeColor;
    CGSize stringsize = [selectedDepartment sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:17.0f]}];
    BtnBreadcrumb.frame = CGRectMake(10, 5, stringsize.width, 40);
    [view addSubview:BtnBreadcrumb];

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(stringsize.width, 5, 200, 40)];
    //[label setFont:[UIFont boldSystemFontOfSize:12]];
    NSString *string = [NSString stringWithFormat:@"/ %@",selectedCategory];
    label.font = [UIFont fontWithName:@"Helvetica" size:15.0];
    label.textColor = TextColor;
     [label setText:string];
    [view addSubview:label];
    [view setBackgroundColor:[UIColor colorWithRed:0.933f green:0.933f blue:0.933f alpha:1.00f]];
    return view;
}

在此处输入图像描述 在此处输入图像描述

我研究了以下链接

iOS:UIButton根据文本长度调整大小

如何根据 iphone 中的文本大小动态增加按钮宽度? 替换已弃用的 -sizeWithFont:constrainedToSize:lineBreakMode: 在 iOS 7 中? 替换已弃用的 sizeWithFont:在 iOS 7 中?

IOS 7 sizeWithFont 已弃用

4

3 回答 3

1

请用:

CGSize size1 = [strkeyword1Partner1 sizeWithAttributes:@{NSFontAttributeName:[UIFont fontWithName:FONT_MYriad_REGULAR size:14.0f]}];

// Values are fractional -- you should take the ceilf to get equivalent values

CGSize adjustedSize1= CGSizeMake(ceilf(size1.width), ceilf(size1.height));

[btnKewword1 setFrame:CGRectMake(self.view.frame.size.width-(adjustedSize1.width +14), btnKewword.frame.origin.y, adjustedSize1.width+5, 20)];
于 2015-06-11T07:36:04.430 回答
1

尝试这个

    UIButton* btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn.frame = CGRectMake(50, 100, 100, 0);
    btn.titleLabel.numberOfLines = 0;
    [btn setTitle:@"dsgdfgdfsdsfgdfsgdfsgdfsgdfgdfgfkdsfgdsgdksfgkdskgf" forState:UIControlStateNormal];
    [self.view addSubview:btn];
于 2015-06-11T07:37:34.997 回答
1

请尝试以下代码我添加 UIButton 的大小。

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 40)];

    UIButton *BtnBreadcrumb = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [BtnBreadcrumb addTarget:self action:@selector(selectBtnBreadcrumb:)
            forControlEvents:UIControlEventTouchUpInside];
    [BtnBreadcrumb.titleLabel setFont: [BtnBreadcrumb.titleLabel.font fontWithSize:17]];

    [BtnBreadcrumb setTitle:@"Test" forState:UIControlStateNormal];
    BtnBreadcrumb.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
    BtnBreadcrumb.tintColor=ThemeColor;
    CGSize stringsize = [selectedDepartment sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:17.0f]}];
    BtnBreadcrumb.frame = CGRectMake(10, 5, stringsize.width, 40);
    [view addSubview:BtnBreadcrumb];

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(stringsize.width, 5, 200, 40)];
    //[label setFont:[UIFont boldSystemFontOfSize:12]];
    NSString *string = [NSString stringWithFormat:@"/ %@",selectedCategory];
    label.font = [UIFont fontWithName:@"Helvetica" size:15.0];
    label.textColor = TextColor;
    [label setText:string];
    [view addSubview:label];
    [view setBackgroundColor:[UIColor colorWithRed:0.933f green:0.933f blue:0.933f alpha:1.00f]];
    return view;
}
于 2015-06-11T07:45:50.200 回答