How to scroll TableView

1.TableViewのスクロール方法

 以前から、PythonistaでのTableViewのスクロール方法が解らず、色々調べていました。

なかなか、ズバリそのもの、という情報が見つかりません。

2.オブジェクトCクラス?

色々と調べていくと、どうも、Pythonのメソッド呼び出しをOBJーCメッセージに自動変換するラッパーのような

「objc_util」を使うとできそうな情報が見つかりました。

 本当にできるのか、試してみたいと思います。

3.既存プログラムのバックアップ

 現在のプログラムは最新版として保存し、コピペしたソースを変更します。

元のソースを別名に変更し、新しいプログラムを最新版と同名にします。

というのは、ソース(.py)を新規に作成すると、UI部分(.pyui)を作り直しになるので、それは時間の無駄になるので、今回はこのような方法を取ります。

(具体的にはb_score2.pyをb_score2_backup.pyとしてコピーを作成しておきます)

変更するのはb_score2.pyです。

4.関数作成

 def TableViewScroll(tableView, rowNum, s_pos):

if (s_pos>=S_TOP and s_pos<=S_BOTTOM):

NSIndexPath = ObjCClass(“NSIndexPath”)

nsindex = NSIndexPath.indexPathForRow_inSection(rowNum,0 )

UITableViewScrollPosition = s_pos # 1:Top, 2:Middle, 3:Bottom

ObjCInstance(view).scrollToRowAtIndexPath:atScrollPosition_animated_(nsindex, UITableViewScrollPosition, True)



5.呼び出し

 対象のTableViewを第1引数に、最大行数rowNumを第2引数、ポジションs_posを第3引数として、前記の「TableViewScroll」を呼び出す。

s_posは、S_TOP, S_MIDDLE, S_BOTTOMのいずれかを設定。

S_TOP, S_MIDDLE, S_BOTTOM以外が指定された場合は、何もせずにリターンする。

6.実装・結果

 実際に実装し、動作を確認します。

 前記の関数を追加し、データ更新時に呼び出すように実装したところ、エラー無しで実行するようにはなりました。

 しかし、スクロールしません。。。残念。。。

TOPにしても、BOTTOMにしても、全くスクロールせず、です。

結果、スクロールさせられず、一旦断念。

わけがわかりません・・・

もう少し、調査、検討が必要です。

ほとんど誰にもみてもらえていないブログですが、もし、本件について助言をいただけると嬉しいです。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

全体

前の記事

Goal setting for 2024
全体

次の記事

Mynaportal app is difficult to use