2017-09-18 9 views
0

UPDATE:ボタンのプロパティのテキストとイメージを修正しました。目的C - オプションでボタンまたはラベルを追加します。

特定の情報が利用可能な場合はボタンを表示しようとしていますが、そのボタンをクリックするとその操作を実行するようにしています。それ以外の場合は、ラベルを表示します。私は以下を作成しました:

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]; 
} 

私は以下の結果を得ています。ランダムな場所にラベルテキストとボタンはありません。私は、ボタンが左のテキストを右にしたいと思います。

Deplay results

+0

質問を明確にしてください。ボタンコードに問題はありますか? 'rec.biography'は常に' nil'ですか? – rmaddy

+0

ボタンコードに問題があります。ボタンやタイトルラベルが表示され、行は空白です。私は行を取ってself.viewに問題があると信じています。私が何が欠けているか分からない。 –

+0

これは、ボタンのタイトルを設定する適切な方法ではありません。 'setTitle:forState:'メソッドを使います。 – rmaddy

答えて

0

私はカスタムボタンのデフォルトtitleTintColor値は白ですので、あなたが、setTitleTintColorを使うべきだと思うので、あなたは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]; 
} 
+0

何の説明もしないでコードを投稿してください。良い答えは何が間違っていたのか、その答えがどのように問題を解決するのかを説明します。 – rmaddy

関連する問題