2016-10-07 4 views
2

私はGithubで見つかったこのアプリを使いこなしています。セルはフルスクリーンサイズなので、セルで停止し、セルはフルスクリーンを占めます。私は細胞の間に境界を付け加えました。細胞は完全なスクリーンに近いが、それほどではないので、一見外見になります。それから私は、細胞の背後に背景を追加し、細胞を画面よりわずかに高くするという明るい考えを持っていますが、細胞の内容はまだフルスクリーンです。このようにして、ユーザはスクロール中のみボーダを見ることができ、次に自動スクロール停止機能を実行すると、実際にはスペースである「ボーダ」がオフスクリーンになる。それは完璧な解決策ですが、私はそれをやるのに困っています。これは自動中心のことをする魔法の機能ですが、細胞をスクリーンハイトよりも大きくするとすべてが狂ってしまいます。画面の高さよりも大きいセルを中心にスクロールを停止する方法

func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) { 
     let cellHeight = targetContentOffset.memory.y/self.screenHeight 
     let index = round(cellHeight) 
     targetContentOffset.memory.y = index * self.screenHeight 
    } 

私はscreenHeightは、このコードで使用され、それは決してかなり働きそれぞれ両方の場所にscreenheightする(境界線として機能している「空間」のサイズである)4を追加してみました。もし私がこのように4を加えたら:

targetContentOffset.memory.y = index * self.screenHeight + 4 

それはほとんど動作します。それは、ボーダースペースのものの半分を画面から外し、各セルで一貫して動作しますが、何らかの理由で画面上に境界の数ピクセルを常に保持します。また、screenheightは基本的にUIScreen.mainScreen()。bounds.size.heightです。

私が行ったやり方で4を追加すると、常に4ピクセル上がりますが、それは一貫して行われますので、別の場所や別のものを追加する必要があります。

答えて

1

わかりました。私がしたことは、セルの底部に+4を追加しただけでした。上部に2、下部に2の代わりに+4を追加しました。次に、self.screenHeightに4を追加する私の方法は実際に働いた。私はこれが効果的だと思う理由は、各セルの終わりにスペースを追加して、セルがそのまま表示され、まったく同じようにセンタリングされているからです。そして、1つのセルから次のセルまでスクロールすると、間隔は同じですが、それでも同じ場所で止まります。

関連する問題