标签: uiscrollview

UICollectionView。一次只允许垂直或水平滚动

我们使用 UICollectionView 构建日历视图。我们希望垂直滚动以更改我们查看的一天中的时间,或水平滚动以更改星期。

现在拖动日历会影响这两者。我们希望将其锁定得更多,以便具有更大速度的滚动方向是我们滚动的唯一方式。

所以我们不想禁用一个方向。我们只想一次只允许一个。

是否有滚动视图属性或支持此功能的东西?

scroll uiscrollview ios uicollectionview swift

1
推荐指数
1
解决办法
1995
查看次数

UIScrollview 停留在不正确的 contentOffset 处(-20 px,而不是 0px)

我有一个 UIScrollview 在 y 轴上扩展并调用此委托方法:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {

    float yOff = scrollView.contentOffset.y;
    NSLog(@"y off is %f", yOff);
}
Run Code Online (Sandbox Code Playgroud)

当scrollView移动到顶部(即yOff == 0)时,它实际上在大多数手机上停留在-20px,在iPhoneX上停留在-44px。如何关闭这种行为?这样做有哪些风险?

objective-c uiscrollview ios

1
推荐指数
1
解决办法
1723
查看次数

确定屏幕上水平 CollectionView 单元格的可见性百分比

我有一个水平集合视图。总会有 2 个并排的单元格,它们都有相同的宽度和高度。这些单元格播放视频,滚动时我想加载屏幕上 70% 的下一个单元格的视频,并停止小于该单元格的视频。我发现了几个类似的问题,但所有内容似乎都引用了 1 个单元格。

1- 单元格 59 和 60 均 100% 在屏幕上

在此输入图像描述

2-向左滚动,屏幕上59仍大于70%,60为100%,61小于30%

在此输入图像描述

3- 仍在向左滚动,59 小于屏幕上的 30%,60 为 100%,61 大于 70%

在此输入图像描述

任何内容都已经可见,如前两张照片中的单元格 59 和所有三张照片中的单元格 60 中的内容,我有逻辑阻止单元格再次加载,即使cell.loadNewVideo()将为它们运行。

layout.minimumLineSpacing = 0
layout.minimumInteritemSpacing = 0

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

    let width = UIScreen.main.bounds.width / 2
    return CGSize(width: width, height: 150)
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {

    collectionView.visibleCells.forEach { cell in
        guard let cell = cell as? VideoCell else { …
Run Code Online (Sandbox Code Playgroud)

uiscrollview ios uicollectionview swift

1
推荐指数
1
解决办法
1558
查看次数

什么是"团结"在一起并保持同步一对os UIScrollViews的正确方法?

我想在并行工作的屏幕上有一对scrollview - 称为scrollA和scrollB.当用户滚动/缩放scrollA时,scrollB模仿该行为,缩放和平移相同.反之亦然.

这可能吗?提前致谢.

干杯,道格

iphone cocoa-touch uiscrollview

0
推荐指数
1
解决办法
1189
查看次数

在mkmapview,scrollview和webview周围绘制边框

我正在开发一个iPhone应用程序,其中我有一个页面,我在分段控件的控制中同时使用scrollview mkmapview和webview.

我这样做很有意思.

我的问题是我想在这些帧之外显示边框或框架.

我怎么能这样做?

uiwebview uiscrollview iphone-sdk-3.0 mkmapview

0
推荐指数
1
解决办法
2682
查看次数

如何保存UIScrollView的状态?

这让我很难过.我正在试图弄清楚如何保存UIScrollView的状态.例如,我在UIScrollView中有几个像这样加载的图像:

    NSUInteger i;
for (i = 1; i <= kNumImages; i++)
{
    NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", i];
    UIImage *image = [UIImage imageNamed:imageName];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
}
Run Code Online (Sandbox Code Playgroud)

现在我的问题是如何在用户可以返回到他们停止滚动的图像的位置?有谁知道如何做到这一点?谢谢.

iphone objective-c uiscrollview iphone-sdk-3.0

0
推荐指数
1
解决办法
1067
查看次数

使用UIScrollView自定义UITableViewCell

当UITableViewCell中有UIScrollView时,Cell不会接收触摸事件.有没有办法取消UIScrollView的点击事件(只需要处理滚动)?

iphone scroll uitableview uiscrollview

0
推荐指数
1
解决办法
1142
查看次数

如何将两个UIScrollView实例缩放到相同级别?

我有两个UIScrollView实例,我想让它们同时缩放.

有没有经验呢?

我正在使用它NSNotificationCenter告诉我的对象何时缩放.最初我以为我可以以某种方式进入当前可见的矩形,并且只是打电话zoomToRect:,但我没有看到这样做的方法.我现在拥有的是设置zoomScalecontentOffset属性.它看起来像这样:

- (void)registerForZoomNotifications {
[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(receiveZoomNotification:) 
                                             name:ZOOM_NOTIFICATION_IDENTIFIER 
                                           object:nil];
}

- (void)receiveZoomNotification:(NSNotification*)notification {

UIScrollView *currentScrollView = (UIScrollView*)[notification object];

// zoomLevel
[(UIScrollView*)self.view setZoomScale:currentScrollView.zoomScale animated:NO];

// contentOffset
[(UIScrollView*)self.view setContentOffset:currentScrollView.contentOffset animated:NO];
}

#pragma mark -
#pragma mark UIScrollViewDelegate

- (void)scrollViewDidZoom:(UIScrollView *)pageScrollView {

[[NSNotificationCenter defaultCenter] postNotificationName:ZOOM_NOTIFICATION_IDENTIFIER object:pageScrollView];

}
Run Code Online (Sandbox Code Playgroud)

它不起作用,看起来非常不稳定.想法有人吗?我应该采取不同的方法吗?

编辑:我应该澄清两个滚动视图同时不可见.它们在完全相同的时间滚动并不重要,只有滚动视图与滚动完成后的另一个滚动视图处于相同的缩放级别(和可见的矩形).

iphone objective-c uiscrollview

0
推荐指数
1
解决办法
845
查看次数

为什么UIScrollView没有弹跳?

我这样做:

    scrollView = [[UIScrollView alloc] initWithFrame:self.bounds];
    [self addSubview:scrollView];

    NSInteger x = scrollView.bounds.origin.x + Padding, y = scrollView.bounds.origin.y + Padding;

    backButton = [[AButtonControl alloc] initWithCaption:@"Back" style:AButtonViewStyleGreen];
    backButton.frame = CGRectMake(x, y, backButton.frame.size.width, backButton.frame.size.height);
    y += backButton.frame.size.height + Spacing;
    [scrollView addSubview:backButton];

    ownerNameTextField = [[AFormTextField alloc] initWithFrame:CGRectMake(x, y, 200, 60) label:@"Guest name"];
    y += ownerNameTextField.frame.size.height + Spacing;
    [scrollView addSubview:ownerNameTextField];

    guestListSelectField = [[AFormSelectField alloc] initWithFrame:CGRectMake(x, y, 200, 60) label:@"Guest list"];
    y += guestListSelectField.frame.size.height + Spacing;
    [scrollView addSubview:guestListSelectField];

    referenceUserSelectField = [[AFormSelectField alloc] initWithFrame:CGRectMake(x, y, 200, 60) …
Run Code Online (Sandbox Code Playgroud)

iphone uiscrollview ios

0
推荐指数
1
解决办法
2404
查看次数

UIScrollView的zoomToRect需要调用两次

我希望平移到我的某个点UIScrollView,同时这样做也可以放大到最大缩放级别.在这里省略缩放矩形计算,似乎zoomToRect需要调用两次来缩放和平移我想要的位置.

[self performSelector:@selector(zoom) withObject:nil afterDelay:1.0];
[self performSelector:@selector(zoom) withObject:nil afterDelay:2.0];
[self performSelector:@selector(zoom) withObject:nil afterDelay:3.0];

- (void) zoom
{
    [self.imageScrollView zoomToRect:(CGRect){ 913.556, 0, 320, 465 }
                            animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

第一个zoom调用放大,但第二个调用实际平移到正确的位置.一旦处于正确的位置,第三个呼叫什么都不做 - 这是我已经预期的第二个呼叫.

这有什么问题?根据Apple文档,我希望它能够在第一次调用时工作.

github上提供了一个示例项目.

iphone uiscrollview ios

0
推荐指数
1
解决办法
1763
查看次数