字体大小通过步进调整大小

时间:2014-08-04 13:58:34

标签: ios xcode uistepper

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

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

3 个答案:

答案 0 :(得分:1)

第一行中缺少self和分号:

[self.myStepper setMinimumValue:14.0];

此行中有一个星号和selfstepper应为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 中设置这些值,您根本不需要处理步进器的任何插座。


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