0

誰かがすぐに私を助けることができますか?私はこれで何時間も遊んでいますが、なぜこれが機能しないのかわかりませんか?

選択したラベル(以前に定義されたUILabelの配列で参照されている)の強調表示されたテキストを更新しようとしています。

このメソッドは、ビューインターフェイスのUISliderから受信するIBActionによって呼び出されます。

ただし、選択したUILabelオブジェクトを配列から取得し、そのHIGHLIGHTEDプロパティを設定すると、ビューインターフェイスに対応する反応がありません。以下のコードを使用して強調表示されたテキストでビューを自動的に再描画することになっているという印象を受けています。

PS:私の接続はすべて正しいようです(つまり、IBOutlet UILabelsは適切にマッピング/接続されており、このメソッドをトリガーするUISliderはIBActionを介して接続されています)。

私は何かが足りないのですか?

- (IBAction) changeHighlightedLabel: (id)sender
{

// Setup
UILabel *selectedLabel = [[UILabel alloc] init];
selectedLabel.highlightedTextColor = [UIColor greenColor];

// Interpret slider value and round to integer
UISlider *temp = sender;
float unroundedTempValue = [temp value];
float roundedTempValue = roundf(unroundedTempValue);

// Select the UILabel object from the UI Label array based on slider valuer
selectedLabel = [uiLabelArray objectAtIndex:roundedTempValue];

// Highlight the selected label
selectedLabel.highlighted = YES;

}

私も代用してみました...

    selectedCountryLabel = [[uiCountryLabelArray objectAtIndex:roundedTempValue] isHighlighted];

...最後の行。それでも動作しません。

フィードバックやヘルプをお願いしますか?ありがとう。

4

1 に答える 1

2

最初にプロパティを作成し、そのプロパティをUILabel設定してから、それをfrom 配列highlightedTextColorで上書きしています。今回はUILabel何も設定していないため、プロパティはラベルでは機能しません。highlightedTextColorhighlighted

以下のように変更してください。

- (IBAction) changeHighlightedLabel: (id)sender
{

   // Interpret slider value and round to integer
   UISlider *temp = sender;
   float unroundedTempValue = [temp value];
   float roundedTempValue = roundf(unroundedTempValue);

   // Select the UILabel object from the UI Label array based on slider valuer
   selectedLabel = [uiLabelArray objectAtIndex:roundedTempValue];

   // Highlight the selected label
   selectedLabel.highlightedTextColor = [UIColor greenColor];
   selectedLabel.highlighted = YES;
}
于 2012-11-20T07:34:18.477 に答える