为什么我的UILabel没有改变?

6 iphone cocoa uilabel

为什么我的UILabel没有改变?我使用以下代码,没有发生任何事情:

- (void)awakeFromNib {
    percentCorrect.adjustsFontSizeToFitWidth;
    percentCorrect.numberOfLines = 3;
    percentCorrect.minimumFontSize = 100;
}
Run Code Online (Sandbox Code Playgroud)

这是我的Implemintation代码:

- (void) updateScore {
    double percentScore = 100.0 * varRight / (varWrong + varRight);
    percentCorrect.text = [NSString stringWithFormat:@"%.2f%%", percentScore];
}

- (void)viewDidLoad {
    percentCorrect.adjustsFontSizeToFitWidth = YES;
    percentCorrect.numberOfLines = 3;
    percentCorrect.minimumFontSize = 100;
    percentCorrect.text = @"sesd";
}


- (void)correctAns {
    numberRight.text = [NSString stringWithFormat:@"%i Correct", varRight];
}

-(void)wrongAns {
    numberWrong.text = [NSString stringWithFormat:@"%i Incorrect", varWrong];
}

#pragma mark Reset Methods
- (IBAction)reset:(id)sender; {
    NSString *message = @"Are you sure you would like to reset?";
    self.wouldYouLikeToReset = [[UIAlertView alloc] initWithTitle:@"Reset?" message:message delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
    [wouldYouLikeToReset addButtonWithTitle:@"Continue"];
    [self.wouldYouLikeToReset show];
    // Now goes to (void)alertView and see's what is being pressed!
}

- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0)
    {
        NSLog(@"Cancel button pressed");
    }
    else
    {
        varRight = 0;
        varWrong = 0;
        [self wrongAns];
        [self correctAns];
        percentCorrect.text = [NSString stringWithFormat:@"0.0%%"];

    }
}

#pragma mark Button Action Methods

- (IBAction)right:(id)sender; {
    varRight++;
    [self correctAns];
    [self updateScore];
}

- (IBAction)wrong:(id)sender; {
    varWrong++;
    [self wrongAns];
    [self updateScore];
}


- (IBAction)subOneRight:(id)sender {
    if (varRight > 0 ) {
        varRight--;
        [self correctAns];
        [self updateScore];
    }
}


- (IBAction)subOneWrong:(id)sender {
    if (varWrong > 0) {
        varWrong--;
        [self wrongAns];
        [self updateScore];
    }
}

-(IBAction)addHalfCredit:(id)sender;
{
    varWrong++;
    varRight++;
    [self wrongAns];
    [self correctAns];
    [self updateScore];
}


@end
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢

ett*_*ore 20

  1. 为了使adjustsFontSizeToFitWidth设置生效,numberOfLines必须将属性设置为1.如果它是!= 1将无效.

  2. awakeFromNib,viewDidLoad,viewWillAppear被称为呢?

  3. minimumFontSize如果文本与当前字体匹配当前边界,则该属性将不执行任何操作.您是否为标签设置了font属性?

    percentCorrect.font = [UIFont systemFontOfSize:20];

  4. 最后,minimumFontSize = 100对于最小字体大小,是不是有点太大了?

  • 这是正确的答案.adjustsFontSizeToFitWidth属性的UILabel类引用声明"仅当numberOfLines属性设置为1时,此属性才有效". (3认同)

Ada*_*eld 0

可能percentCorrect还没有初始化。是否percentCorrect等于nil调用该函数的时间?如果是这样,请等到其正确初始化后再设置其属性。