小编d0n*_*tz1的帖子

无法在UIScrollView中的UITableView上向上/向下滚动并同时向左/向右滚动

第二次更新感谢@ Segev的评论和对另一个主题的引用,我能够改进我的演示,让它基本上做我想要的.然而,它仍然没有Instagram的实现那么顺利,我想知道是否有人知道如何改进它以使其更顺畅?此外,我注意到有时(在我的演示中),当我向左/向右快速扫动并且我想切换到向上/向下滑动时,它仍将继续向左/向右滑动,直到我停止滑动并让它先停下来

更新:通过继承UIScrollView并从UIGestureRecognizerDelegate实现shouldRecognizeSimultaneouslyWithGestureRecognizer和shouldBeRequiredToFailByGestureRecognizer方法,我可以在停止向上/向下滚动后左/右滑动表视图.我的想法是在ifRecognizeSimultaneouslyWithGestureRecognizer中返回true,如果用户向上/向下滚动tableView,然后在shouldBeRequiredToFailByGestureRecognizer中使表视图的向上/向下手势失败.

但是我仍然无法弄清楚如何让用户在停止初始向上/向下滚动(并且用户的手指仍然在设备上)之后向上/向下或向左/向右滚动.

我在这里创建了一个示例项目https://github.com/paulsfds/TableViewsInScrollView.您可以通过向下滑动表格视图一次来测试此操作,然后抬起手指,当它仍在滚动时,将手指放回以停止滚动.当您的手指仍在桌面视图上时,请尝试向左/向右滑动,它应该可以正常工作.但是,如果您尝试多次向下滑动表格视图,则会执行此实现,但有时会卡住,因为它会认为您正在尝试向左/向右滑动.有任何想法吗?

原文:我有一些UITcrollView在UIScrollView中启用了分页,并设置为让我左右翻页,这样一次只能看到一个UITableView.这是一个图表(取自UIScrollView中UITableView上的冲突滚动)

                                 +--visible area--+  ---+
+---------`UIScrollView`---------+---------------+|  --+|
| +-------------+ +-------------+|+-------------+||  -+||
| |      0      | |      1      |||      2      |||   |||
| |`UITableView`| |`UITableView`|||`UITableView`|||  equal height
| |             | |             |||             |||   |||
| +-------------+ +-------------+|+-------------+||  -+||
+--------------------------------+---------------+|  --+| 
                                 +----------------+  ---+
Run Code Online (Sandbox Code Playgroud)

我想要实现的是,如果用户向下滚动表格视图,然后提起他们的手指(并且仍然发生向下滚动动画),则用户可以选择向左和向右滑动以转到下一个表格视图.现在,如果用户向下滚动表格视图,然后抬起他们的手指,同时仍然发生向下滚动动画,然后将他们的手指放回去向左和向右滑动,它将不允许用户向左和向右滚动是的,我被困在查看已经可见的表视图,除非我等待表视图滚动完全停止然后向左和向右滑动.

TL; DR基本上我无法向上/向下滚动表格并同时在滚动视图中向左/向右滑动,但我希望能够做到这一点.这方面的一个例子是在Activity选项卡上的iOS Instagram应用程序中.您可以向下滚动,然后在表格视图仍在滚动时向右滑动.

uitableview uiscrollview uigesturerecognizer ios

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

如何结合两种不同的Mongoid标准

我在我的模型中定义了以下范围:

scope :upcoming, -> { where(:start_time.gt => Time.now).asc(:start_time) }
scope :in_progress, -> {
   now = Time.now
   where(:start_time.lte => now).where(:end_time.gte => now).asc(:start_time)
}
Run Code Online (Sandbox Code Playgroud)

我想创建另一个范围,它结合了两个名为current的范围的结果.我试过这样的事情:

scope :current, -> { self.in_progress | self.upcoming }
Run Code Online (Sandbox Code Playgroud)

但这最终只会将它们视为数组并将它们连接起来.这个问题是,当我尝试使用Model.current调用我的作用域时,我收到以下错误消息:

NoMethodError: undefined method `as_conditions' for #<Array:0xaceb008>
Run Code Online (Sandbox Code Playgroud)

这是因为它将Mongoid Criteria对象转换为数组,但我不希望这样.我希望该对象保留为Mongoid Criteria对象.

我真正想要的是in_progress集和即将到来的集合的结合.

有任何想法吗?谢谢.

ruby criteria mongodb mongoid ruby-on-rails-3

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

iOS Today Extension中出现奇怪的NSInternalInconsistencyException和PKService崩溃

我在iOS Today Extension上安装了Crashlytics,我遇到了这个奇怪的崩溃.有谁知道为什么会发生这种情况?

致命异常:NSInternalInconsistencyException删除非活动插件com.somecompany.someapp.TodayExtension(1.0)>

它崩溃的线是

11 PlugInKit - [PKService unregisterPersonality:] + 188

在我今天的扩展中,在viewDidLoad中,它将获取用户的当前位置,然后发出网络请求以获取有关该位置的数据.这是否发生是因为我的操作耗时太长而且iOS正在杀死我的扩展程序?我无法重现这一点,但我认为用户看到的是一个空格,其中应该是扩展名,或者除了扩展名的标题之外没有显示任何内容.


    Thread : Fatal Exception: NSInternalInconsistencyException
    0  CoreFoundation                 0x0000000181cc2530 __exceptionPreprocess + 132
    1  libobjc.A.dylib                0x0000000192c980e4 objc_exception_throw + 60
    2  CoreFoundation                 0x0000000181cc23f0 +[NSException raise:format:]
    3  Foundation                     0x0000000182b6dc34 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 112
    4  PlugInKit                      0x000000018d1c04a0 __35-[PKService unregisterPersonality:]_block_invoke + 488
    5  libdispatch.dylib              0x00000001932e9954 _dispatch_client_callout + 16
    6  libdispatch.dylib              0x00000001932f31e4 _dispatch_barrier_sync_f_invoke + 76
    7  PlugInKit                      0x000000018d1c024c -[PKService unregisterPersonality:] + 188
    8  PlugInKit                      0x000000018d1bdfec -[PKServicePersonality shutdownPlugIn] + 108
    9  CoreFoundation                 0x0000000181cc8350 __invoking___ + …

objective-c ios crashlytics today-extension

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

重新选择createStructuredSelector在Typescript中如何工作?

我试图了解reselect方法createStructuredSelector在Typescript中的工作方式。我经常看到这种模式:

export interface SomeProps {
   readonly property1: string;
   readonly property2: boolean;
   readonly property3: number;
}

export interface SomeOwnProps {
   readonly property3: number;
}

export const someSelector = createStructuredSelector<
    SomeState,
    SomeOwnProps,
    SomeProps
>({
   property1: property1Selector,
   property2: property2Selector,
   property3: (_, props) => props.property3
});
Run Code Online (Sandbox Code Playgroud)

我不明白尖括号内的类型的目的。我认为这SomeState是Redux存储状态,SomeOwnProps是父组件传递SomeProps的道具,也是该组件使用的所有道具。但是SomeOwnPropsSomeProps和之间有什么区别?为什么同时需要两者?您为什么不能只使用SomeProps它,因为它还包含中定义的属性SomeOwnProps?谢谢!

typescript reactjs react-native redux reselect

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