TableViewには、アウトオブザボックスViewCell
があるにもかかわらず、自分で実装することができます。明らかにTextCellはありますが、フォントサイズなどを指定することはできません。
あなたはこのような何かを行うことができます:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="DemoTableView.TablePage" Title="TableView">
<ContentPage.Content>
<TableView Intent="Settings">
<TableRoot>
<TableSection>
<SwitchCell Text="Personal Hotspot" />
<ViewCell> <!-- Simple text -->
<Label Text="Turn on personal hotspot..." FontSize="Small" ForegroundColor="Gray" />
</ViewCell>
<ViewCell> <!-- More complex cell -->
<StackLayout Orientation="Horizontal>
<Image Source="someicon" />
<StackLayout>
<Label Text="TO CONNECT USING WIFI" FontSize="Large"/>
<Label Text="Something more" FontSize="Small" />
</StackLayout>
</StackLayout>
</ViewCell>
</TableSection>
</TableRoot>
</TableView>
</ContentPage.Content>
</ContentPage>
これはちょうど簡単な例を急いで書かれているが、あなたのアイデアを得ます。また、ViewCell
クラスから継承して独自のセルをプログラムで定義し、TableViewで表示することもできます。
Here's more公式ドキュメントのカスタムセルについて
編集:あなたのコメントを1として、我々はテキストのみの細胞に選択を無効にするには、プラットフォーム固有のコードにビットを掘るする必要があります。
[assembly: ExportCell(typeof(YourCell), typeof(YourCellRenderer))]
namespace YourProject.iOS
{
public class YourCellRenderer : ViewCellRenderer
{
public override UITableViewCell GetCell (Cell item, UITableView tv)
{
var cell = base.GetCell (item, tv);
cell.SelectionStyle = UITableViewCellSelectionStyle.None;
return cell;
}
}
}
おかげで、しかしViewCellを使用すると、2つの欠点があります:あなたは、iOS用の次のカスタムレンダラでカスタムViewCell実装を作成する必要がありますから、a)は、私はまだ、セルをタップ上のホバー効果を得ること、b)セパレータ上記のSwitchCellは、以下にさらに多くのオプションがあると通常通りに縮小します。どのようにこれらの問題を克服するための任意のアイデア? – Physikbuddha
@Physikbuddhaああ、そうは思わなかった。私は自分の答えを更新しました。しかし、確かにbについてはわからない。 – hankide