2

我正在使用步进器来控制文本视图的字体大小,但是在我按下步进器两次之前不会触发任何操作。为什么会这样?

以下代码用于“mystepper”IBAction:

- (IBAction) changeFontSize:(id)sender
{

    [myStepper setMinimumValue:14.0]
    self.myStepper.maximumValue =20.0;

    UIFont newSize = [myTextView fontWithSize:self.stepper.value];
    self.myTextView.font = newSize;

}

我发现问题是我需要将步进器的当前值设置为最小值。但是,我希望 size 的值可以在多个场景中传递,这样 fontSize 就不需要按超时。我怎么才能得到它???

4

2 回答 2

2

在 viewDidLoad 中:

[myStepper setMinimumValue:14.0]
[myStepper setMaximumValue:20.0]

UIFont newSize = [myTextView fontWithSize:self.stepper.value]; // provide some default value to myStepper
self.myTextView.font = newSize;

// 将一种方法分配给步进器 - 值更改事件

- (IBAction)stepperValueChanged:(id)sender
{
    double stepperValue = ourStepper.value;

    [self.myTextView setFont:[self.myTextView.font fontWithSize:stepperValue]];
}

这是核心逻辑,但可能需要进行细微的更改以满足您的要求。

希望这会帮助你。

于 2013-03-12T10:59:22.473 回答
0

因为您想在多个屏幕中设置大小。所以一种做法是使用 userDefaults。

在您的 viewDidLoad 方法中,您需要读取 userDefaults 并检查是否没有相同的保存数据,保存 minValue 和 maxValue。

在你的方法中

- (IBAction)stepperValueChanged:(id)sender{
    double stepperValue = ourStepper.value;
   ...
}

使用新值并更新 userDefaults 值。

并获取 userDefaults 值并在整个应用程序中使用该大小。

于 2013-03-12T11:24:14.477 回答