Tag: 滚动

UITableView中的单元格重叠。 许多细胞在一个地方

我试图用随机数字的标签进行表视图。一切工作,直到我试着滚动它。 比许多细胞出现在一个地方。 它看起来像这样: 从模拟屏幕 为了使viewDidLoad()中的随机行高度我把这个: tableView.estimatedRowHeight = 50.0 tableView.rowHeight = UITableViewAutomaticDimension 用随机数行写随机数的标签的代码在这里: override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "HarvestPlan", for: indexPath) as! HarvestPlanCell let currentSpecies = harvestPlan[indexPath.row] var kindLabels = [UILabel]() cell.kindsNamesView.bounds.size.width = 100 for kind in currentSpecies.kinds { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false […]

UIScrollView不能在iOS 6和7中以编程方式滚动

为了testing目的,我创build了两个滚动视图的项目。 第一个滚动视图有手动插入的图像,在第二个滚动视图中我有button列表(作为菜单)。 我有button左右滚动UIScrollView编程。 点击这个button后,我通过设置内容大小来移动滚动视图。 myCounter.text = [NSString stringWithFormat:@"%d", [myCounter.text intValue] – 1]; CGRect page = CGRectMake(320*([myCounter.text intValue] ), 230, 320, 150); [myScrollView scrollRectToVisible:page animated:YES]; CGRect page2 = CGRectMake(320*([myCounter.text intValue] ), 20, 320, 200); [firstScrollView scrollRectToVisible:page2 animated:YES]; 我面临的问题是只有第一个滚动视图正在滚动,而不是第二个。 我真的很困惑,为什么发生这种情况。 我也是在Dropbox上附加同样的项目,因为代码是多一点。 Dropbox项目 完整的代码,如果有人不想下载项目 。H #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UIScrollView *myScrollView; @property […]

当手指离开屏幕时,iOS滚动事件不经常发生

我写了一个高效的视差脚本,在手机上非常stream畅。 但是,如果我用手指在屏幕上滚动,这只是光滑的。 当用手指在屏幕上滚动时,视差平滑。 但是第二个我拿掉手指,让惯性接pipe,开始滞后。 但只有当惯性接pipe时。 我想在惯性滚动期间是否经常发生某种滚动事件。 它似乎不是脚本造成的滞后,这是更多的事实,滚动事件或任何滚动事件我已经尝试不惯在惯性滚动期间触发。 我通过测量从一个滚动事件到另一个滚动事件的时间量来testing这个定理。 结果是当计算和应用视差时,滚动事件的发生频率不会降低。 从本质上讲,我要求的是一个事件,在惯性滚动期间,就像在手指在屏幕上拖动时一样多次触发。 提前致谢。

UICollectionView与CustomFlowLayout如何限制每滚动只有一个页面滚动?

我在我的iOS应用程序中实现了customFlowLayout 。 我已经通过子类化UICollectionViewFlowLayout子类化了targetContentOffsetForProposedContentOffset:withScrollingVelocity UICollectionViewFlowLayout 。 现在我的问题是当用户滚动collectionview它必须滚动到只有下一个索引。 现在它随机滚动。 所以任何人都有任何想法,我怎样才能使滚动限制只有一个项目每卷。 以下是我的代码。 #pragma mark – UICollectionViewLayout (UISubclassingHooks) – (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity { CGSize collectionViewSize = self.collectionView.bounds.size; CGFloat proposedContentOffsetCenterX = proposedContentOffset.x + collectionViewSize.width / 2; CGRect proposedRect = CGRectMake(proposedContentOffset.x, 0, collectionViewSize.width, collectionViewSize.height); UICollectionViewLayoutAttributes *candidateAttributes; for (UICollectionViewLayoutAttributes *attributes in [self layoutAttributesForElementsInRect:proposedRect]) { if (attributes.representedElementCategory != UICollectionElementCategoryCell) continue; if (!candidateAttributes) { candidateAttributes […]

浏览器滚动事件在iOS和Android设备上不会经常触发

我正在开发一个使用jQuery,greensock和scollorama的单页面网站。 它并不完全需要支持移动浏览器,但是如果它能在iPad上运行,那将会很不错 – 所以考虑到这一点,我开始testing各种手机和平板电脑。 我碰到的问题是,scrollorama依赖于经常被触发的滚动事件,因为这是animation被钩入的 – 然而,当使用触摸屏时,浏览器似乎只在启动拖动时触发滚动事件,当你停下来时 – 这在Opera Mini,Chrome,Safari,FF Mobile上是一致的。 为了让我的页面尽可能地完成部分工作,我需要提出一些能够让我更频繁地开展滚动活动的事情 – 有谁知道如何? PS我已经尝试使用iScroll作为scrollorama文档build议,但是,这并没有工作,而是打破了animation,使滚动不可能 – 我敢肯定,插件本身的作品,但它似乎并没有很好地工作,已经得到了。 我正在寻找比插件更less的东西,只是一个片段,理想地触发滚动事件。 TL; DR 带有触摸屏的设备似乎只在拖动过程中触发javascript滚动事件一次或两次。 有一个简单的补丁,我可以在JS或jQuery中更频繁地触发滚动事件吗? 更新:我已经尝试挂钩触摸事件,并触发浏览器滚动,如下所示: $(document).on('touchstart touchend touchmove', function(){ $(window).trigger('scroll'); }); 这似乎给我使用Firefox的Android更好的结果,虽然我不认为它是像我想要的那样频繁地触发它比什么都好。 我会在其他浏览器中testing,看看是否有帮助。 更新2: 上面的代码帮助了Android上的FF,而不是在iPhone上。 我尝试添加iPhone的手势事件处理程序,但没有改变。 $(window).on('touchstart touchend touchmove mousewheel touchcancel gesturestart gestureend gesturechange orientationchange', function(){ //alert($(window).scrollTop()); $(window).trigger('scroll'); });

防止身体元素在触摸设备上滚动

问题: 我有一个在iOS主屏幕上的Web应用程序,所以没有浏览器窗口,它的外观和function非常好。 我已经想出了如何让内部div元素做触摸滚动事件,并在iOS中使用动量/反弹样式,这是完美的…我现在遇到的问题是,反弹滚动(再次,只有iOS )正在搞乱页面上的任何固定元素或与网站相关的animation。 当我尝试以下: document.ontouchmove = function(e) {e.preventDefault()}; 问题停止,但现在我不能在我的应用程序的任何地方滚动。 我需要的: 我想要将身体完全locking到位…如果有人抓住我的侧边栏或导航栏,然后拉上页面,身体就会弹起! 但是,如果有人在内容区域内,完全没有问题 – 应用程序滚动完美,看起来不错。 如果我停止滚动侧边栏或导航栏或正文,应用程序中的所有滚动将无法正常工作,实质上是不起作用的。 tl; dr:身体在卷轴上反弹。 我想要一个滚动的内容区域,并不滚动任何其他地方。 身体不应该移动,但我认为在身体内滚动的元素应该。 作为一个旁注,我浏览了以下stream行的问题/解决scheme张贴(其他许多人): 1 2 3 我只是想在人们认为我没有做任何search之前发布这个消息……我已经在这个小时了,看到了比上面更多的解决scheme,但是我想得到上面列出的最受欢迎的解决scheme所以没有人认为这是一个重复的问题。

在UIScrollview滚动延迟的UITableView

我有一个UIScrollView ,我添加了许多viewcontrollers有UITableView在该scrollview ,其实我的要求是,当我在屏幕上水平滚动它将切换到下一个content.Now当我垂直滚动表,然后水平滑动它不水平滚动,直到表停止垂直滚动。 如果您有任何build议,请帮忙

UITableView不滚动时没有分配给父母的UIViewController视图属性

我已经把一个UITableView放在一个UIViewController里面,并且把UITableViewController的代码复制到我的UIViewController中,以使它实现UITableViewControllers默认实现的“表格数据协议”,并遵循http://developer.apple.com/library/IOs/#documentation /UserExperience/Conceptual/TableView_iPhone/CreateConfigureTableView/CreateConfigureTableView.html#//apple_ref/doc/uid/TP40007451-CH6-SW10 s章节“以编程方式创build表格视图”(使用ViewDidLoad代替LoadView,因为我使用IB并且有一个笔尖,我为UITableView命名的tableView创build了一个sockets)。 现在在上面的链接章节中,UITableView被分配给了UIViewController的UIView属性self.view。 然后滚动UITableView工作,但UITableView填充隐藏其他视图内容,如UIToolbar的整个屏幕 – 可能是因为它被分配到视图属性后的唯一内容。 如果我省略了赋值,另一个视图内容就位,一切正常,但UITableView不滚动。 如何实现UIViewController中UITC具有静态内容(如工具栏)滚动的UITableView? 以下是相关的代码: // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. – (void)viewDidLoad { [super viewDidLoad]; tableView.delegate = self; tableView.dataSource = self; [tableView reloadData]; //self.view = tableView; }

IOS -webkit-overflow-scrolling在错误的轴上滚动,或根本不滚动

我正在用html5构buildIOS的移动应用程序。 我正在使用“-webkit-overflow-scrolling:touch”来获得原生的惯性滚动,但是它很麻烦。 我已经解决了内容不滚动,直到滚动停止的问题,但一个持续性的错误是这样的: 当我尝试上下滚动时,没有任何反应,但当我尝试水平滚动时,内容会垂直滚动(离轴90度)。 如果我浏览我的应用程序并回到页面,它有时会被修复。 另外,尽pipe内容丰富,但有时它根本不会滚动。 从我所search的内容来看,似乎苹果已经意识到了这个漏洞,并且不打算立即修复它。 有没有人find一个解决scheme来让-webkit溢出滚动正常工作?

iOS禁用页面使用溢出滚动进行滚动:触摸

所以我们假设我们想让一个web应用程序感觉像一个本地应用程序,并且具有“添加到主屏幕”的function。 其中的第一步是禁用默认的滚动。 很简单,对吧? // window or document window.addEventListener("touchmove", function(event) { // no more scrolling event.preventDefault(); }, false); 这一切都很好,直到你添加overflow-scrolling的混合。 确切地说,在iOS上,它将是-webkit-overflow-scrolling: touch 。 /* #scrollable happens to be a ul */ #scrollable { overflow-y: auto; -webkit-overflow-scrolling: touch; } 通过添加事件防护,硬件加速滚动容器不起作用,显然不是预期的效果。 明显的解决scheme看起来像这样: // you could do this for multiple elements, of course var scrollable = document.querySelector("#scrollable"); scrollable.addEventListener("touchmove", function(event) { […]