我正在使用步进器来控制文本视图的字体大小,但是在我按两次步进器之前没有触发任何操作。为什么会这样?
以下代码用于`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的值可以在muiltple场景中传递,这样fontSize就不需要按下加班。我怎么能得到它?
答案 0 :(得分: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]];
}
这是核心逻辑,但可能会有微小的变化,以满足您的要求。
希望这会对你有所帮助。
答案 1 :(得分:0)
您想在多个屏幕中设置大小。因此,一种做法是使用userDefaults。
在viewDidLoad方法中,您需要读取userDefaults并检查是否没有保存的数据,保存minValue和maxValue。
在您的方法中
- (IBAction)stepperValueChanged:(id)sender{
double stepperValue = ourStepper.value;
...
}
使用新值并更新userDefaults值。
获取userDefaults值并在整个应用程序中使用该大小。