gpt4 book ai didi

iphone - UIScrollView 中具有 pagingEnabled 的页面之间类似照片应用程序的间隙

转载 作者:行者123 更新时间:2023-12-03 18:18:02 26 4
gpt4 key购买 nike

分页模式下的 UIScrollView 假定页面彼此相邻,没有间隙。但是,如果您在“照片”应用程序中打开照片并滑动照片,您会发现页面之间存在一些间隙。我也想要这些间隙。

我正在寻找现有的解决方案(如果有),或者除了我在下面解释的方案之外,寻找一些关于实现页面间隙的更奇怪的想法。或者也许我缺少一些明显的简单方法?

需要明确的是:我希望间隙仅在滚动时可见,因此我不能简单地插入页面内容。

<小时/>

我的计划是尝试从 scrollViewDidScroll 回调内部移动页面内容,以便(假设您向右滚动)目标页面最初稍微偏移到其页面边界的右侧,当您到达目标页面时,它又回到了正确的位置,并且源页面稍微向其边界左侧偏移。 (或者也许我最好不要连续移动东西,而是移动偏移量,比如说,正好在页面之间的中间位置。)

我是 ScrollingMadness article+example 的作者我已经向一些人推荐了这里。我已经实现了程序缩放,并将照片内缩放+滚动与照片间分页一起使用。所以我知道如何使用 UIScrollView,并且正在寻找高级的东西。

请不要将我指向 TTScrollView。我自己已经向很多人指出过它,但我认为它与原生 UIScrollView 行为相去甚远,并且不想在我的项目中使用它。

最佳答案

Note that this answer is quite old. The basic concept still works but you should not be hard coding view sizes in iOS7 and 8. Even if you ignore that advice, you should not use 480 or 330.

您是否尝试过使 UIScrollView 的框架比屏幕稍大(假设您想全屏显示图像,然后将 subview 排列在稍大于屏幕的位置)屏幕边界。

#define kViewFrameWidth 330; // i.e. more than 320

CGRect scrollFrame;
scrollFrame.origin.x = 0;
scrollFrame.origin.y = 0;
scrollFrame.size.width = kViewFrameWidth;
scrollFrame.size.height = 480;

UIScrollView* myScrollView = [[UIScrollView alloc] initWithFrame:scrollFrame];
myScrollView.bounces = YES;
myScrollView.pagingEnabled = YES;
myScrollView.backgroundColor = [UIColor redColor];

UIImage* leftImage = [UIImage imageNamed:@"ScrollTestImageL.png"];
UIImageView* leftView = [[UIImageView alloc] initWithImage:leftImage];
leftView.backgroundColor = [UIColor whiteColor];
leftView.frame = CGRectMake(0,0,320,480);

UIImage* rightImage = [UIImage imageNamed:@"ScrollTestImageR.png"];
UIImageView* rightView = [[UIImageView alloc] initWithImage:rightImage];
rightView.backgroundColor = [UIColor blackColor];
rightView.frame = CGRectMake(kViewFrameWidth * 2,0,320,480);

UIImage* centerImage = [UIImage imageNamed:@"ScrollTestImageC.png"];
UIImageView* centerView = [[UIImageView alloc] initWithImage:centerImage];
centerView.backgroundColor = [UIColor grayColor];
centerView.frame = CGRectMake(kViewFrameWidth,0,320,480);

[myScrollView addSubview:leftView];
[myScrollView addSubview:rightView];
[myScrollView addSubview:centerView];

[myScrollView setContentSize:CGSizeMake(kViewFrameWidth * 3, 480)];
[myScrollView setContentOffset:CGPointMake(kViewFrameWidth, 0)];

[leftView release];
[rightView release];
[centerView release];

如果无法编译,我深表歉意,我在横向应用程序中对其进行了测试,然后将其手动编辑回纵向。我相信你已经明白了。它依赖于 super View 剪辑,对于全屏 View 来说始终如此。

关于iphone - UIScrollView 中具有 pagingEnabled 的页面之间类似照片应用程序的间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/849383/

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