gpt4 book ai didi

ios - 关于 UIScrollView 和 AutoLayout 的困惑

转载 作者:行者123 更新时间:2023-11-28 20:23:00 26 4
gpt4 key购买 nike

我在同一个问题上查看了许多不同的线程,但似乎无法理解这里发生了什么。我创建了一个非常基本和简单的项目。我想要发生的是将一堆元素放在正确滚动的 ScrollView 中。这些元素可能包括一个独立滚动(或不滚动)的 UITableView。以下是我如何设置我的基本项目:

IB View

在模拟器中运行它会产生一个不滚动的 View 。这是意料之中的,因为所有元素都有足够的空间。然后我像这样更改了 UIScrollView 的大小:

IB View 2

在模拟器中运行它会产生一个不会滚动的较小 View 。我想我没有以正确的方式这样做。这是我最近尝试过的代码:

ViewController.h

@interface ViewController : UIViewController <UIScrollViewDelegate>

@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
@property (strong, nonatomic) IBOutlet UIButton *buttonOne;
@property (strong, nonatomic) IBOutlet UIButton *buttonTwo;
@property (strong, nonatomic) IBOutlet UIButton *buttonThree;
@property (strong, nonatomic) IBOutlet UIButton *buttonFour;

@end

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

[self.buttonOne setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.buttonTwo setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.buttonThree setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.buttonFour setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.scrollView setTranslatesAutoresizingMaskIntoConstraints:NO];
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end

如有任何帮助,我们将不胜感激。

最佳答案

问题在于,当您在界面构建器中更改 ScrollView 的大小时,您还将内容的大小设置为与框架大小相同。

您可以在代码中手动增加 ScrollView 的内容大小,以便您可以像这样滚动它:

// scrollView is an outlet to your scroll view
// Add 200 points to the bottom of the scroll view
[self.scrollView setContentInset:UIEdgeInsetsMake(0, 0, 200, 0)];

不过,您可能不需要这样做,只要您以全尺寸绘制 subview ,并使其成为某个其他 View 的 subview ,并让它自动调整自身大小即可。

关于ios - 关于 UIScrollView 和 AutoLayout 的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15210838/

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