2017-05-02 5 views
20

ViewCellを使用して、テーブル設定ページで行を作成しています。 Light or Darkテーマを選択する設定があります。XamarinフォームでViewCellセパレータラインを部分的にカットする方法は?

<ViewCell Height="50"> 
    <StackLayout x:Name="darkTheme" VerticalOptions="FillAndExpand" Padding="20,0,20,0"> 
     <StackLayout Orientation="Horizontal" VerticalOptions="CenterAndExpand"> 
      <Label Text="Dark" XAlign="Center" FontSize="15"/> 
      <Label x:Name="darkThemeCheckmark" Text="{x:Static local:FontAwesome.FACheck}" FontFamily="FontAwesome" XAlign="Center" IsVisible="false" FontSize="12" HorizontalOptions="EndAndExpand"/ 
     </StackLayout> 
    </StackLayout> 
</ViewCell> 
<ViewCell Height="50"> 
    <StackLayout x:Name="lightTheme" VerticalOptions="FillAndExpand" Padding="20,0,20,0"> 
     <StackLayout Orientation="Horizontal" VerticalOptions="CenterAndExpand"> 
      <Label Text="Light" XAlign="Center" FontSize="15"/> 
      <Label x:Name="lightThemeCheckmark" Text="{x:Static local:FontAwesome.FACheck}" FontFamily="FontAwesome" XAlign="Center" IsVisible="false" FontSize="12"/> 
     </StackLayout> 
    </StackLayout> 
</ViewCell> 

私は暗闇から光をテーマに切り替えるたびに、私は取り除くように見えることはできません私の行の間の左側にかすかな光のラインがあります。下の画像を参照してください:私のレンダラで

enter image description here

enter image description here

私は次のように設定しています

tableView.LayoutMargins = new UIEdgeInsets() { Left = 20 }; 
cell.SeparatorInset = new UIEdgeInsets() { Left = 20 }; 
cell.LayoutMargins = new UIEdgeInsets() { Left = 20 }; 

誰もがこのラインを取り除く方法を知っていますか?

編集:

私はそれが以下のようになりたいと思った:事前に enter image description here

答えて

0

謝罪あなたはすでにこれを検討しているが、私は何を探していることは「TableView.SeparatorInset」であると信じて包みこれはPCLで使用しているxamlではなくレンダラーに適用されます。このlinkには、テーブルビューのスタイリングに関するドキュメントがあります。

E.G.区切り文字の挿入を移動

TableView.SeparatorInset.InsetRect(new CGRect(4, 4, 150, 2)); 

は、私はあなたが全体のテーブルシフトについて他の回答のコメントで言及見た問題を回避します。あなたがこれを試したことがあれば教えてください、それは最も簡単な解決策ですが、他にも利用可能なオプションがあります。 (彼らはちょうどいいものではない)。

編集:お気に入りのセパレータを作成して目標を達成する方法の例。セパレータのスタイリングを完全に制御するために強調した問題も解決します。これを参照してくださいLink

+0

ありがとうございます。私はこれを既に試しましたが、私のテーブルにしていることは 'TableSection'タイトルをシフトするだけです。 –

+0

@iamsophia「TableView.SeparatorInset.InsetRect(新しいCGRect(4、4、150、2));」を試したことをご確認いただきありがとうございます。例えば?私はとにかく表題のタイトルに影響を与えるべきではないので、尋ねるだけです。 – Digitalsa1nt

+0

それはない。私はこれを試しました: 'tableView.SeparatorInset = new UIEdgeInsets(){Left = 10; }; ' –

3

私はxamarinの初心者ですが、this postによると、あなたはUITableViewとあなたのUITableViewCellサブクラスでこれを行う必要があります。

私はこれがあなたに役立つことを願っています。 :)

関連する問題