Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 自定义UITableViewCell内的水平UIScrollView-使用IB故事板-不滚动_Ios_Objective C_Uitableview_Uiscrollview - Fatal编程技术网

Ios 自定义UITableViewCell内的水平UIScrollView-使用IB故事板-不滚动

Ios 自定义UITableViewCell内的水平UIScrollView-使用IB故事板-不滚动,ios,objective-c,uitableview,uiscrollview,Ios,Objective C,Uitableview,Uiscrollview,主要目标是能够水平滚动每一行的内容 我正试图用X代码5和故事板来实现这一点 这个问题似乎很简单,但经过几个小时的搜索,我什么也没有得到,只有一个问题有点类似,但只使用编程方法 在IB中,我的结构如下面的设计所示。 scrollview的内容大小在IB和代码中都设置为{5000500}set 滚动视图框架是{0,0}{320,44} 标签帧设置为{20,0}{500,44} 我还提供了一个。该示例还包括在uitableviewcell外部工作的“普通”滚动视图 请说我忽略了一些非常基本的东西

主要目标是能够水平滚动每一行的内容

我正试图用X代码5和故事板来实现这一点

这个问题似乎很简单,但经过几个小时的搜索,我什么也没有得到,只有一个问题有点类似,但只使用编程方法

在IB中,我的结构如下面的设计所示。

  • scrollview的内容大小在IB和代码中都设置为{5000500}set
  • 滚动视图框架是{0,0}{320,44}
  • 标签帧设置为{20,0}{500,44}
我还提供了一个。该示例还包括在uitableviewcell外部工作的“普通”滚动视图


请说我忽略了一些非常基本的东西。

我无法使用我的xCode 4访问您的
情节提要

首先,您应该将
UITableView
ViewController
连接起来。
UITableView单元格
位于您的
UITableView
内。这就是为什么您应该尝试更改
UITableView
的设置。连接后,您应该尝试更改
UITableView
contentinset
,如下所示:

[self.tableView setContentInset:UIEdgeInsetsMake(0, 0, 2500, 2500)];

如果这不起作用,您还可以尝试更改TableView的内容大小。也许您还必须更改
UIView的大小才能正常工作。

iOS 7的新自动布局模式似乎已经破坏了许多使用UIScrollView的iOS 6和早期应用程序。我最近发布了一个类似的问题[现在被版主搁置-所以你可能看不到它],用户Lv.BeLeCk通过以下方式获得了成功:

self.automaticallyAdjustsScrollViewInsets = NO;
在持有滚动视图的视图控制器中。把它放在滚动视图的实例化之后。看看这是否有效,如果有效,请投票支持他的贡献

我认为根本原因是,在实例化时,UIScrollView现在正在根据其当前内容更新其大小,而不是以前将其单独放置在地狱中


我不知道苹果为什么要搞砸这件事。我仍然在等待多行标签的顶部和底部对齐

确保在
ViewDidLayoutSubView
scrollViewDidEndZooming:withView:atScale:
中调用
setContentSize
。在iOS6中,如果没有这些方法中的代码,默认行为可以正常工作,在iOS7中,使用新的布局系统,它们是必需的。设置可能会多次调用它,只需继续调用
setContentSize

我也遇到了同样的问题,并且发现删除scrollview的内容视图并再次添加它可以工作:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.label removeFromSuperview];
    [self.scrollView addSubview:self.label];
    self.scrollView.contentSize = self.label.frame.size;
}

这不是最优雅的解决方案,但对我来说很有效。

我通过IB解决了这个问题

我必须在“Identity value section-User Defined Runtime Attributes”中具有相同的值,键“frame-Rect-CGRectValue”等于“Size inspector-View values”


我希望这对你有帮助

我今天也有同样的问题。 几个小时后,通过将单元格的选择从“无”更改回默认值,可以解决此问题。 希望它能帮助其他人。

自动布局在您的故事板中被激活(这是一件好事)。 UIScrollView的可滚动大小是根据其子视图的约束计算的

因此,您需要在UIScrollView内部的UIImageView上添加“superview的顶部、底部、前导和尾随空间”。它们可以全部设置为0

现在,如果不向UIImageView添加任何约束,则将使用其intrinsicContentSize大小

您的约束应如下所示:

[self.tableView setContentInset:UIEdgeInsetsMake(0, 0, 2500, 2500)];

请注意,单元格的内容视图上也缺少约束


完成约束后,从代码中删除所有setContentSize:调用。

另一种方法是在自定义UITableViewCell中使用UICollectionView,但似乎不起作用。我不知道是否有必要,因为scrollview在UITableCellView中,我不太明白你的答案。你似乎在谈论在滚动视图中插入一个tableview的情况,这不是我要问的情况。谢谢Yimin。实际上,应用程序的功能已经改变,所以我现在不需要它了。尽管如此,我还是会尝试您对github代码的建议,看看它是如何运行的。我很快就会回来,希望能有结果。@Yimin你能链接到说明需要将上述方法放入
viewDidLayoutSubviews
?@reecon的文档吗?我是在查阅了大量相关评论后得出结论的。例如。在撰写本文时,情况就是这样,也许现在不同了。你找到解决方案了吗?我也有类似的情况。我的scrollview在UIViewController中工作得非常好,但是当我将它放入UITableViewCell中时,simple就不起作用了。我使用的是Xcode 5和iOS 7。还没有。但我没有尝试过伊敏提出的解决方案。如果您先尝试,请在这里报告。@Marcolves喂,有更新吗?你修好了吗?@Shady没有。我放弃了ideia,转而使用了另一个UI概念——一个更熟悉的概念。@Shady我使用了这个:这对我来说很有效,但因为我在滚动视图中使用UIView而不是图像视图,所以我需要在UIView上设置高度和宽度限制,以便使其正常工作。是的。下面的教程可能会有所帮助。