我有一个带有UISearchBar的UITableView作为tableViews.tableHeaderView.就像3.0中的新Mail.app,Notes.app等.我想隐藏SearchBar,直到用户将视频拖到他的视线中.
我的尝试只有在tableView中有几个项目时才有效,因此tableView实际上想要滚动.我在loadView中调用它:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self._tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:NO];
Run Code Online (Sandbox Code Playgroud)
然而,似乎Apple以不同的方式处理这种serachbar.在淘汰搜索栏之后,它似乎不再与tablecells有关(在Notes.app中,而不是在Mail.app中).
但也许Apple对于新的3.0行为有一个独特的方法,而我却找不到它?
什么是用于创建动态滚动实现的好算法?该功能将在自定义UI列表上进行测试.虽然我的目标是移动设备(那些没有内置此功能的设备),但是来自不同编程领域的任何算法或代码示例也可能适用.
这是一个证明问题的jsbin示例.
基本上,我有以下javascript将窗口滚动到页面上的锚点:
// get anchors with href's that start with "#"
$("a[href^=#]").live("click", function(){
var target = $($(this).attr("href"));
// if the target exists: scroll to it...
if(target[0]){
// If the page isn't long enough to scroll to the target's position
// we want to scroll as much as we can. This part prevents a sudden
// stop when window.scrollTop reaches its maximum.
var y = Math.min(target.offset().top, $(document).height() - $(window).height());
// also, don't …Run Code Online (Sandbox Code Playgroud) 当软键盘打开时,我想要滚动视图向下滚动到底部.
为此,我可以使用:fullScroll(View.FOCUS_DOWN);
但是,如何在软键盘打开事件触发后触发该命令?
该"太长;没有读"版本:有没有什么办法来禁用自动滚动行为UIScrollView讲的时候UITextField到becomeFirstResponder?
我有一个启用分页的滚动视图和几个视图作为子视图,每个子视图由其自己的视图控制器控制.每个子视图都有一个UITextField.
要求是当页面滚动到视图中时,它的文本字段应该成为第一响应者.
使用手指滑动滚动时这很好 - 我使用滚动视图委托方法scrollViewDidEndDecelerating:知道滚动停止和页面在视图中时,我可以告诉文本字段成为第一响应者.
但是,当滚动视图被"自动滚动"时,如在告知scrollRectToVisible:animated:滚动视图时,不调用用于减速的滚动视图委托方法.在将新创建的页面滚动到视图中而没有用户的交互,或者用户点击时,我使用此方法UIPageControl.
我的解决方案是在告诉它滚动到视图之前简单地设置文本字段的第一个响应者状态 - 但似乎告诉滚动视图中的文本字段成为第一个响应者会导致滚动视图自动将其滚动到视图中.
我假设这是在表视图单元格中放置文本字段时使用的行为(因为表视图是滚动视图子类).如果您设置一个小型测试应用程序,具有表格视图和表格单元格中的文本字段,如果键盘在成为第一响应者时会遮挡表格视图单元格,则表格视图将自动滚动它以使其可见.
但是,我不明白为什么在我的示例中出现这种情况,我没有使用表视图 - 只是一个简单的滚动视图.
我还要提一下,我的滚动视图已禁用垂直滚动,只能水平滚动.
我已经在另一个测试应用程序中进行了测试,该应用程序将文本字段作为scrollview的直接子视图(没有视图控制器或容器视图),同样的情况发生.如果您告诉屏幕外的文本字段成为第一响应者,则滚动视图会自动为您滚动它.
这通常不会成为问题,但似乎搞砸了滚动视图的分页.当我用手指滚动时,每个视图都会反弹并正确居中.但是当我滚动一个矩形以使动画可见并告诉文本字段成为第一响应者时,滚动视图似乎与自身发生冲突,并且视图仅滚动到视图的一部分,并且不居中.
然后,如果我用手指触摸视图(不滑动,甚至移动),滚动视图会跳回到第一页.
我目前对所有这些愚蠢的自动滚动行为的解决方法是使用a NSTimer来确定何时更新第一个响应者.
我在代码中使用手动滚动,scrollRectToVisible:animated然后在0.3秒后,调用我的方法将文本字段更新为第一响应者.(0.3秒是试验和错误,试图看哪,这似乎是允许动画的最小时间,但仍然足够长,不会导致与scrollview的冲突.
正如你所看到的,这并不优雅,而且可能会破裂.
有没有什么办法来禁用自动滚动行为UIScrollView讲的时候UITextField到becomeFirstResponder?
嘿所有 - 是否可以在需要时将整个线性布局滚动?(当布局中的所有元素都不适合主屏幕时)?
我知道这对于视图等是可行的...但是有没有办法将布局中的所有内容同时包含在可滚动中?
也许可滚动不是正确的术语...基本上 - 如果其中一个元素(在这种情况下是一个按钮)不能完全进入手机的主屏幕,我需要向下滑动手指才能访问它.如果这是有道理的.
我想用jQuery模仿行为,你可以在这里看到:http: //edo.webmaster.am/
只需看右下角,向下滚动一下,您就会看到"返回顶部"按钮.
因此,在您向下滚动页面然后显示(动画)之前,它是不可见的.
我怎么能在jQuery中做到这一点?
我遇到的问题实际上是Chrome上的"功能".正如大多数人可能知道的那样,只要您回到页面,Chrome就会记住它返回的滚动位置.我有点问题.
有没有办法在没有用户注意的情况下覆盖它?
米斯
试用失败:
我想导航到新页面上的锚点,但我希望页面在顶部加载,然后立即平滑滚动到相关的锚点.可以这样做吗?
我是一个完整的Javascript新手.
这是我目前用于在当前页面内平滑滚动的js.我只是在链接上应用了一类"滚动".
非常感谢!
<script>
$(function(){
$('.scroll').on('click',function(e) {
e.preventDefault();
$('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top + 'px' }, 1000, 'swing');
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 当我在Visual Studio Code中用两个手指滚动触摸板时,我经常偶然滚动到两侧.这有点烦人.我很高兴有它滚动只上下.
scroll ×10
jquery ×3
android ×2
iphone ×2
javascript ×2
algorithm ×1
html ×1
layout ×1
mobile ×1
mousewheel ×1
scrollbar ×1
search ×1
touchscreen ×1
uiscrollview ×1
uisearchbar ×1
uitableview ×1
uitextfield ×1
view ×1
viewport ×1
xml ×1