【问题标题】:Implementing Multitasking Bar ios7实现多任务栏 ios7
【发布时间】:2015-03-05 03:24:12
【问题描述】:
我在实现 iOS 7 样式的多任务 UI 时遇到问题。我的问题出在多任务 UI 的底部。
我假设这是作为 UICollectionView 实现的,当您滚动此位时,您会通过 uicollectionview 流布局委托更改行间距......这一切都很好,但是当您滚动它们时,速度感觉不自然。我认为这是因为滚动时单元格之间的行距会发生变化......
如果你们能提供一些意见,那就太好了!
非常感谢!
【问题讨论】:
标签:
swift
ios7
uiscrollview
uikit
uicollectionview
【解决方案1】:
好吧,所以在破解更多 uiscrollview 之后,显然你可以更改内容插图以“控制”滚动视图的速度......一旦我完成了这个,我将在 github 中为人们放一个代码
编辑
这比我想象的要难......但显然在滚动时动态更改内容插入不会像 iOS7 中的原生多任务栏那样产生自然效果。它“更好”,但我想知道我是否在这里遗漏了什么......这是我目前代码的伪逻辑......
let countItems = self.collectionView(self.mainCardCollectionView, numberOfItemsInSection: 0)
if countItems >= 6{
let insetIconOffset:CGFloat = (CGFloat(2) * self.maximumIconSpacing) - (CGFloat(2) * self.minimumIconSpacing)
if scrollView.contentOffset.x < first2Offset{
self.interLineSpacing = self.maximumIconSpacing;
self.adjustCardInset(0)
}else if scrollView.contentOffset.x >= first2Offset && scrollView.contentOffset.x < first3Offset-1{
let offset:CGFloat = scrollView.contentOffset.x - first2Offset
let percentage:CGFloat = offset/CGFloat(first3Offset - first2Offset)
self.interLineSpacing = self.maximumIconSpacing - percentage*(self.maximumIconSpacing-self.minimumIconSpacing);
self.adjustCardInset(2)
}else if scrollView.contentOffset.x >= last3Offset && scrollView.contentOffset.x < last2Offset {
let offset:CGFloat = scrollView.contentOffset.x - last3Offset
let percentage:CGFloat = offset/(last2Offset - last3Offset)
self.interLineSpacing = self.minimumIconSpacing + percentage*(self.maximumIconSpacing-self.minimumIconSpacing);
self.adjustCardInsetRight(2, numberItems: countItems-3)
println("card ajust before last 2")
//self.adjustCardInset(2)
//println("offset \(offset) percentage \(percentage) interlinespacing \(self.interLineSpacing)")
}else if scrollView.contentOffset.x >= last2Offset{
self.interLineSpacing = self.maximumIconSpacing
self.adjustCardInsetRight(2, numberItems: countItems-3)
println("card ajust after last 2")
//self.adjustCardInset(2)
}else{
self.interLineSpacing = self.minimumIconSpacing
self.adjustCardInset(2)
}
}