窓を作っては壊していた人のブログ

この謎のブログタイトルの由来を知るものはもういないだろう

Xamarin.Forms 2.4.0 Service Release 4がリリースされました(Web Preview版として)

昨日

【備忘録】Xamarin.Forms2.4系iOSにあるバグを解消するために試したこと - 窓を作っては壊していた人のブログ

こんな記事を書いたばかりですが,これの6時間後にXamarin.Forms 2.4.0 Service Release 4がリリースされました.

Release 2.4.0 Service Release 4 · xamarin/Xamarin.Forms · GitHub

記事で問題に取り上げていたListViewのCell内にBindingを行い内容を変更するLabel Viewが含まれていた場合,Cell数の増減でクラッシュする件を修正するPR

[Core, iOS] Allocate prototypical view for RetainElement by kingces95 · Pull Request #1226 · xamarin/Xamarin.Forms · GitHub

が盛り込まれているようです(なんてタイムリーな...)

ですがまだGroupingHeaderに関するPRはマージされていないようなので,IL書き換えなどでその場しのぎをすると行った運用がいいのかなぁと思います.

また本リリースでは主にiOS11向けの修正が多く盛り込まれています.

例えば

blog.xamarin.com

こんな感じの大きな見出しを使うものだったり,iPhone XのSafeAreaに関することです.

On<iOS>().SetUseSafeArea(true);

これを記述するだけっぽいのでお手軽ですね.

詳細な使い方はこちらにまとまっています.

blog.xamarin.com

ListViewのバグで2.3.5-pre6から上げられなかった人はこの機会にアップしてみてはいかがでしょうか?

【備忘録】Xamarin.Forms2.4系iOSにあるバグを解消するために試したこと

本題のとおりです.

Xamarin.Forms 2.4.0系を使うとiOSのListViewとLabelの組み合わせてNullReferenceExceptionで落ちる - 窓を作っては壊していた人のブログ

前回記事にしたこの内容ですが,Xamarin.FormsのリポジトリのPRを見てみると

[Core, iOS] Allocate prototypical view for RetainElement by kingces95 · Pull Request #1226 · xamarin/Xamarin.Forms · GitHub

このようなPRが上がっています. この記事を書いている11月3日時点でまだマージされていないので,自前ビルドしました.

特に注意する点はまったくなくて,ビルドボタンを押すだけの簡単作業です. 特に書くことがないぐらい結構簡単だったのでこれからはこれを試していこうと思います.

またこの他にも

[iOS] Don't crash when grouped ListView uses ObservableCollection by samhouts · Pull Request #1244 · xamarin/Xamarin.Forms · GitHub

このPRも入れちゃいましょう. GroupHeaderのバグはこれで解消されました.

最初

XamIOSILFix.workbook · GitHub

こんな感じでIL書き換えをしたのですが,やっぱりビルド走らせたほうが簡単ですね...