如何设置UIScrollView的起点?我想在UIScrollView左侧添加一个UIImageView,但更改contentSize只会在scrollview右侧添加滚动空间。如何在scrollView的(0,0)点左侧添加ImageView并使其成为scrollview内容大小的一部分?
如何设置UIScrollView的起点?我想在UIScrollView左侧添加一个UIImageView,但更改contentSize只会在scrollview右侧添加滚动空间。如何在scrollView的(0,0)点左侧添加ImageView并使其成为scrollview内容大小的一部分?
希望我有你想要做的事情。我认为这只需要几轮就可以使用contentOffset来实现。
开始;
(请注意,在下面的代码中,我只是添加了一个UIView而不是一个imageView)
UIScrollView *scroller = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scroller.delegate = self;
scroller.pagingEnabled = YES;
scroller.backgroundColor = [UIColor blueColor];
scroller.contentSize = CGSizeMake(960, 480);
UIView *imgView = [[UIView alloc] initWithFrame:CGRectMake(320, 0, 320, 480)];
[imgView setBackgroundColor:[UIColor redColor]];
[scroller addSubview:imgView];
[scroller setContentOffset:CGPointMake(320, 0)];
[self.view addSubview:scroller];
这有帮助吗?
实际上,如果您在iPhone中,应该是在卷轴中间启动的最佳解决方案
[scroller setContentOffset:CGPointMake(320, 0)];
[self.view addSubview:scroller];
而对于iPad
[scroller setContentOffset:CGPointMake(1024, 0)];
[self.view addSubview:scroller];
尝试设置内容偏移量。
[scrollView setContentOffset:CGPointMake(320, 0.0)];
如果您只是想设置滚动条内容应该在开头放置的位置,您可以使用 - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
将内容滚动到方法中指定的点的方法。
如果这不是你想知道的,请告诉我,我会回复你的!
干杯。
设置起点的关键是分配xy坐标不等于零的边界。喜欢这个
lazy var contentView: UIView = {
let size = CGFloat(5000)
let view = UIView(frame: CGRectZero)
view.frame = CGRectMake(0, 0, size, size)
view.bounds = CGRectMake(-size/2, -size/2, size, size)
return view
}()
func centerContent() {
let frame = UIEdgeInsetsInsetRect(self.scrollView.bounds, self.scrollView.contentInset)
let navigationBarHeight = self.scrollView.contentInset.top
let x = (self.scrollView.contentSize.width/2) - (frame.size.width/2)
let y = (self.scrollView.contentSize.height/2) - (frame.size.height/2) - navigationBarHeight
self.scrollView.contentOffset = CGPointMake(x, y)
}