在 UIScrollview 中设置 size 属性
Posted
技术标签:
【中文标题】在 UIScrollview 中设置 size 属性【英文标题】:Setting size property in UIScrollview 【发布时间】:2011-11-15 08:11:08 【问题描述】:我想在另一个视图中创建一个滚动视图。我在 IB 中放置了一个 UIScrollview 元素,并在与主视图关联的视图控制器文件中声明了一个 UIScrollview。我还在视图控制器头文件中声明了一个属性,并在对应的实现文件中合成。
我是在应用委托还是在视图控制器中设置滚动视图的大小?如果我在视图控制器中设置它,我还需要为该实例执行分配和初始化命令吗?还是我依赖于由于滚动视图是属性而存在的 getter 和 setter 方法?
我应该补充一点,我只希望滚动视图占据主视图的一部分。
这是我的viewDidLoad
方法:
- (void)viewDidLoad
[super viewDidLoad];
[scrollView setFrame:CGRectMake(0, 44, 768, 1000)];
[scrollView setContentSize:CGSizeMake(768, 1000)];
// Do any additional setup after loading the view, typically from a nib.
IB 中 UIScrollview 的实际大小是 768 x 804,应该有一个垂直滚动条(scrollview 中的一些 UI 元素被剪裁了,所以如果这个视图设置正确,肯定应该有一个滚动条。 )
【问题讨论】:
您正在做一些语法错误。那是你得到expected identifier error
的时候。重新检查代码。应该是[scrollView setFrame:CGRectMake(0, 44, 768, 1000)];
我的整个viewDidLoad
方法都在上面了,还有什么我忘记了吗?
视图实际上是滚动的,只是我运行应用时没有看到滚动条。
酷,太好了。从这里开始,我只是不明白为什么你的代码不起作用..
【参考方案1】:
是的,您可以使用setFrame
设置scrollView
实例的frame
属性。
即无论您在 IB 中定义的帧大小如何,使用 [scrollView setFrame:CGFrameMake()];
您都可以重新定义确切的宽度、高度和 x、y 坐标。
事实上,这就是在 ios 中创建动态视图的方式。
一旦您完全退出此视图,请确保您 dealloc
和 release
此 IB 实例,因为它会被定义为 retain
。
【讨论】:
我要在视图控制器文件中这样做吗? 是的,你应该在你的视图控制器文件中做。因此,基本上您正在更改在 IB 中定义和创建但链接到UIScrollView
实例的变量的 UI 元素的尺寸。清楚吗?
哦,如果我使用 ARC,我不需要做 dealloc
和 release
,对吧?
你可以在任何你想要改变滚动视图尺寸的地方进行。实际上在任何地方。所以要回答你的问题,是的,你可以在 loadView
或 viewDidLoad
或 ...
查看上面我的问题的补充,当我尝试使用setFrame
时出现错误以上是关于在 UIScrollview 中设置 size 属性的主要内容,如果未能解决你的问题,请参考以下文章
在 UIPageViewController 中设置 UIScrollView 的内容大小
如何在 swift 中设置 UIScrollView 内的全宽图像