繁体   English   中英

目标C-可选地添加按钮或标签

[英]Objective C - Optionally add button or label

更新:更正了按钮属性的文本和图像。

我尝试显示一个按钮(如果有特定信息可用),并让该按钮在单击时执行操作; 否则,只需显示一个标签。 我创建了以下内容:

if(rec.biography != nil)
{
    btnProviderBio = [UIButton buttonWithType:UIButtonTypeCustom];

    [btnProviderBio setImage:[UIImage imageNamed:@"info.png"] forState:UIControlStateNormal];
    [btnProviderBio setTitle:[NSString stringWithFormat:@"%@ - %@", rec.providerName, rec.facilityName] forState:UIControlStateNormal];
    [btnProviderBio setFrame: CGRectMake(13.0, yValue, [UIScreen mainScreen].bounds.size.width-26, 40.0)];
    [btnProviderBio addTarget:self action:@selector(providerAlertDiaglog:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btnProviderBio];
}
else{
    lblFacilityProvider = [[UILabel alloc] init];
    [lblFacilityProvider setFont:[UIFont systemFontOfSize: 14]];
    [lblFacilityProvider setText:[NSString stringWithFormat:@"%@ - %@", rec.providerName, rec.facilityName]];
    [lblFacilityProvider setFrame: CGRectMake(13.0, yValue, [UIScreen mainScreen].bounds.size.width-26, 40.0)];
    [self.view addSubview:lblFacilityProvider];
}

我现在得到以下结果。 没有标签文本和按钮在随机位置。 我希望按钮在左侧,文本在右侧。

播放结果

我认为您应该使用setTitleTintColor,因为“自定义”按钮的默认titleTintColor值为白色,因此您需要设置titleTintColor。 请检查以下代码。

if(rec.biography != nil)
{
    btnProviderBio = [UIButton buttonWithType:UIButtonTypeCustom];

    [btnProviderBio setImage:[UIImage imageNamed:@"info.png"] forState:UIControlStateNormal];
    [btnProviderBio setTitle:[NSString stringWithFormat:@"%@ - %@", rec.providerName, rec.facilityName] forState:UIControlStateNormal];
    [btnProviderBio setFrame: CGRectMake(13.0, yValue, [UIScreen mainScreen].bounds.size.width-26, 40.0)];
    [btnProviderBio addTarget:self action:@selector(providerAlertDiaglog:) forControlEvents:UIControlEventTouchUpInside];
     // I used rgb color but you can use your color, this rgb color just for your reference.
     [btnProviderBio setTitleColor:[UIColor colorWithRed:36/255.0 green:71/255.0 blue:113/255.0 alpha:1.0] forState:UIControlStateNormal];

    [self.view addSubview:btnProviderBio];
}
else{
    lblFacilityProvider = [[UILabel alloc] init];
    [lblFacilityProvider setFont:[UIFont systemFontOfSize: 14]];
    [lblFacilityProvider setText:[NSString stringWithFormat:@"%@ - %@", rec.providerName, rec.facilityName]];
    [lblFacilityProvider setFrame: CGRectMake(13.0, yValue, [UIScreen mainScreen].bounds.size.width-26, 40.0)];
    [self.view addSubview:lblFacilityProvider];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM