我希望我的应用程序在您点击步进器时会调整UITextView
中的字体大小。问题是我遇到了错误。
- (IBAction)myStepper:(id)sender {
[myStepper setMinimumValue:14.0]
self.myStepper.maximumValue =20.0;
UIFont newSize = [myTextView fontWithSize:self.stepper.value];
self.myTextView.font = newSize;
}
这是我的所有代码,我错过了什么?
答案 0 :(得分:1)
第一行中缺少self
和分号:
[self.myStepper setMinimumValue:14.0];
此行中有一个星号和self
,stepper
应为myStepper
:
UIFont *newSize = [self.myTextView fontWithSize:self.myStepper.value];
答案 1 :(得分:0)
为了便于阅读代码,您不应该为您的操作方法提供与UISteppert属性相同的名称。例如,将其更改为-(IBAction)stepperValueChanged:(id)sender
。
您不需要在此方法中设置最小值和最大值,但在初始化方法中
- (void) viewDidLoad
{
[super viewDidLoad];
// Various implementation
self.myStepper.minimumValue = 14;
self.myStepper.maximumValue = 20.0;
}
- (IBAction) stepperValueChanged:(id)sender
{
self.myTextView.font = [UIFont fontWithSize:self.myStepper.value];
}
看起来你是一些理解方法和属性之间差异的问题,如果你开始开发(并欢迎开发世界;),你应该阅读一些文档和教程。)
编辑:
myStepper属性不存在于您的班级中。如果使用界面构建器,则必须将步进器链接到UIStepper属性:此Apple教程将帮助您:https://developer.apple.com/library/ios/recipes/xcode_help-interface_builder/articles-connections_bindings/CreatingOutlet.html。 否则,如果您不使用Interface Builder,则必须向您的类添加UIStepper属性并自行分配。
答案 2 :(得分:0)
我会像你这样清理你的方法:
- (IBAction)myStepperValueChanged:(UIStepper *)sender {
[sender setMinimumValue:14.0];
[sender setMaximumValue:20.0];
UIFont * newSize = [UIFont fontWithName:myTextView.font.fontName size:sender.value];
[self.myTextView setFont:newSize];
}
但我将前两行放入-viewDidLoad
方法作为标准init过程的一部分,如果它们在运行时使用插座名称是静态值(我假设它是myStepper
in你的班级):
[myStepper setMinimumValue:14.0];
[myStepper setMaximumValue:20.0];
或者我会在 Interface Builder 中设置这些值,您根本不需要处理步进器的任何插座。
注意:很难说哪种解决方案更适合您,您没有分享太多可以帮助我推荐特定解决方案的信息。