Ios ScrollView可以';不适合它';s子视图';他有时很满足

Ios ScrollView可以';不适合它';s子视图';他有时很满足,ios,objective-c,Ios,Objective C,我试图让用户自己调整字体大小来阅读应用程序的内容。因此,我放置了一个滑块,如果用户向右滑动,字体将增长,向左滑动意味着字体大小将变小。它工作正常,但问题是有时scrollView内容大小没有得到新的内容大小。 这是我的方法: - (IBAction)enlargeLabelWithSlider:(id)sender{ UISlider *slider = (UISlider *)sender; int font = 0; int currentSliderValue = (int)slider

我试图让用户自己调整字体大小来阅读应用程序的内容。因此,我放置了一个滑块,如果用户向右滑动,字体将增长,向左滑动意味着字体大小将变小。它工作正常,但问题是有时scrollView内容大小没有得到新的内容大小。 这是我的方法:

- (IBAction)enlargeLabelWithSlider:(id)sender{

UISlider *slider = (UISlider *)sender;
int font = 0;
int currentSliderValue = (int)slider.value;

if (currentSliderValue<=lastSilderValue) /* Every time the method call, at the end lastSilderValue = currentSliderValue*/
{
    // Need to increase
    font =lastSilderValue - currentSliderValue;

    [self.gameTitleLabel setFont:[UIFont fontWithName:self.gameTitleLabel.font.fontName size:self.gameTitleLabel.font.pointSize+font]];
    [self.gameScoreLabel setFont:[UIFont fontWithName:self.gameScoreLabel.font.fontName size:self.gameScoreLabel.font.pointSize+font]];
    self.gameStateLabel.font = [UIFont systemFontOfSize:self.gameStateLabel.font.pointSize+font];
}
else
{
    // Need to decrease
    font =currentSliderValue - lastSilderValue;

    [self.gameTitleLabel setFont:[UIFont fontWithName:self.gameTitleLabel.font.fontName size:self.gameTitleLabel.font.pointSize-font]];
    [self.gameScoreLabel setFont:[UIFont fontWithName:self.gameScoreLabel.font.fontName size:self.gameScoreLabel.font.pointSize-font]];
    self.gameStateLabel.font = [UIFont systemFontOfSize:self.gameStateLabel.font.pointSize-font];
}
lastSilderValue = currentSliderValue;

CGFloat height = self.gameStateLabel.frame.origin.y+self.gameStateLabel.frame.size.height+20; 
CGSize size = CGSizeMake(self.ScrollView.frame.size.width, height);
self.ScrollView.contentSize = CGSizeMake(size.width, size.height); // i used self.gameStateLabel.frame.origin.y because it's the last label on the view.
-(iAction)带滑块的放大器:(id)发送器{
UISlider*滑块=(UISlider*)发送器;
int font=0;
int currentSliderValue=(int)slider.value;

如果(currentSliderValue我看不到
UILabel
框架有任何更改。 也许您必须使此框架适应新的字体大小,然后尝试修改scrollview contentSize属性。
这将很有帮助:

我在InterfaceBuilder中提供了UILabels约束,并在那里将numberOfLines设置为0…标签将正确调整为新的字体大小。问题是,只有在某些情况下,scrollView没有获得正确的大小。。。