滚动视图不滚动[重复]

Posted

技术标签:

【中文标题】滚动视图不滚动[重复]【英文标题】:scrollview is not scrolling [duplicate] 【发布时间】:2014-06-22 16:05:45 【问题描述】:

这是我要实现的页面的代码。它是我正在开发的游戏的设置页面。我创建了一个包含滚动视图的外部视图(称为外部视图),滚动视图本身包含一个 UIView,它具有所有主要内容,如按钮和标签。 我无法让此 scrollView 上下滚动屏幕。任何帮助将不胜感激

@property (weak, nonatomic) IBOutlet UIScrollView *scrollView; 
@property (weak, nonatomic) IBOutlet UIView *containerView;
    @property (weak, nonatomic) IBOutlet UIView *outerView;

    @end

    @implementation SettingsViewController

    #define music_key music
    #define sound_key sound


    -(void)viewDidLoad
    
        [super viewDidLoad];
        [self checkValues];
        [self makeSettingsPage];
    
    -(void)makeSettingsPage
    
        [self.scrollView setContentMode:UIViewContentModeScaleAspectFit];

        //Content Size is size of the view inside the scrollview
        self.scrollView.contentSize = CGSizeMake(_outerView.frame.size.width,_outerView.frame.size.height);


        RoundButton *about=[[RoundButton alloc]initWithColor:color1 WithText:@"ABOUT"];
        RoundButton *privacyPolicy=[[RoundButton alloc]initWithColor:color2 WithText:@"PRIVACY \n POLICY"];
        RoundButton *termsOfUse=[[RoundButton alloc]initWithColor:color2 WithText:@"TERMS \n OF USE"];

        about.center=CGPointMake(29, 451);
        privacyPolicy.center=CGPointMake(29, 481);
        termsOfUse.center=CGPointMake(29, 511);
        self.containerView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"background_letter.png"]]];

        [self.containerView addSubview:about];
        [self.containerView addSubview:privacyPolicy];
        [self.containerView addSubview:termsOfUse];
    

【问题讨论】:

【参考方案1】:

setContentSize 添加到viewWillAppearviewDidAppear

IBOutlets 仅在视图即将显示时创建,而不是在加载后创建。

您可以通过向该行添加断点来验证这一点。滚动视图将为 nil。

【讨论】:

不,我确实先把它放在那里,它没有用,所以我在这里尝试了。 添加一个 UIAction(或任何你可以触发的东西)和 NSLog(@"%@",self.scrollView);NSLog(@"%@",NSStringFromCGSize:self.scrollView.contentSize); 并告诉我你得到了什么。 contentOffset: 0, 0> 320, 480 你打印的既不是contentOffset也不是contentSize,是frame。

以上是关于滚动视图不滚动[重复]的主要内容,如果未能解决你的问题,请参考以下文章

设置子视图的layer.cornerRadius后iOS UITableView滚动不顺畅[重复]

如何在ios中检查滚动视图是不是在底部滚动[重复]

Swift检查滚动表视图的方式[重复]

滚动视图,如导航控制器的过渡[重复]

将禁用的滚动子视图添加到 UITableViewController [重复]

表视图单元格在重新加载表视图和滚动时重复内容