0

任何人都可以快速帮助我吗?我已经玩了几个小时了,不明白为什么这不起作用?

我正在尝试更新选定标签中突出显示的文本(在先前定义的 UILabels 数组中引用)。

此方法由从视图界面中的 UISlider 接收的 IBAction 调用。

但是,当我从数组中检索选定的 UILabel 对象并设置其 HIGHLIGHTED 属性时,视图界面上没有相应的反应。我的印象是它应该自动重绘视图,并使用下面的代码突出显示文本。

PS:我的连接似乎都是正确的接口生成器(即,IBOutlet UILabel 已正确映射/连接,触发此方法的 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并设置highlightedTextColor属性,然后用UILabelfrom 数组覆盖它。由于您highlightedTextColor这次没有设置任何内容,因此该highlighted属性将不适用于标签。

更改如下。

- (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 回答