gpt4 book ai didi

ios - UIScrollView 在 View 启动时不起作用,但在旋转后起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:34 25 4
gpt4 key购买 nike

我有一个 UIScrollView 来显示更长的 TextView 、字段和图像列表。在 viewDidAppear 中,我适本地设置了 contentSize,并将此代码添加到 didRotateFromInterfaceOrientation,以便 UIScrollView contentSize 根据方向调整大小。

问题是,当 View 首次出现时,UIScrollView 没有响应(我无法滚动),但在旋转设备后,调用了 didRotateFromInterfaceOrientation 中的代码,并且一切都很完美。 (如果我以横向启动应用程序,我只能稍微滚动一下以查看通常在纵向模式下显示的内容,而不是扩展内容 - 忽略我定义的 scrollView)

viewDidAppeardidRotateFromInterfaceOrientation 中的代码是一样的,为什么scrollView 只在旋转后响应?任何帮助表示赞赏。

两种方法中 NSLog 消息的输出是相同的。

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


- (void) viewDidAppear:(BOOL)animated{
//If not an iPad set the scrollview to allow scrolling of view
if (!([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)) {
self.scrollView.contentSize= CGSizeMake(self.view.frame.size.width,1000);
[self.scrollView setUserInteractionEnabled:YES];
}
if(self.scrollView.userInteractionEnabled){
NSLog(@"DEBUG scrollview height : %f",self.scrollView.contentSize.height);
NSLog(@"DEBUG scrollview width : %f",self.scrollView.contentSize.width);
}
}

-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
//If not an iPad set the scrollview

if (!([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)) {
self.scrollView.contentSize= CGSizeMake(self.view.frame.size.width,1000);
}
if(self.scrollView.userInteractionEnabled){
NSLog(@"DEBUG scrollview height : %f",self.scrollView.contentSize.height);
NSLog(@"DEBUG scrollview width : %f",self.scrollView.contentSize.width);
}
}

最佳答案

最好更改viewDidLayoutSubviews中的contentSize,出现时调用改变方向时调用。

但是不要忘记先调用super!

关于ios - UIScrollView 在 View 启动时不起作用,但在旋转后起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15943148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com