-1

我希望我的应用程序在您单击步进器时会调整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;
}

这是我所有的代码,我错过了什么吗?

4

3 回答 3

1

self在第一行缺少一个和一个分号:

[self.myStepper setMinimumValue:14.0];

和一个星号和self在这一行,stepper应该是myStepper

UIFont *newSize = [self.myTextView fontWithSize:self.myStepper.value];
于 2014-08-04T14:03:48.823 回答
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 属性:此苹果教程将为您提供帮助:https://developer.apple.com/library/ios/recipes/xcode_help-interface_builder/articles-connections_bindings/CreatingOutlet。 .html _ 否则,如果不使用 Interface Builder,则必须在类中添加 UIStepper 属性并自行分配。

于 2014-08-04T14:13:04.177 回答
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作为标准初始化过程的一部分放入方法中,如果它们是运行时使用插座名称的静态值(我假设它myStepper在您的类中):

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

或者我会在Interface Builder中设置这些值,你根本不需要为你的步进器处理任何出口。


注意:很难说哪种解决方案更适合您,您没有分享太多可以帮助我推荐特定解决方案的信息。

于 2014-08-04T14:36:08.270 回答