template samples c# xamarin.ios xamarin.forms

c# - samples - ¿Cómo cortar parcialmente la línea separadora de ViewCell en formularios Xamarin?



xamarin forms samples (2)

Estoy usando ViewCell para crear filas en la página de configuración de mi tabla. Tengo una configuración para seleccionar un tema claro u oscuro.

<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>

Cada vez que cambio de tema oscuro a claro, hay una tenue línea de luz en el lado izquierdo entre mis filas de la que parece que no puedo deshacerme. Por favor, consulte las imágenes a continuación:

En mi procesador he establecido lo siguiente:

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

¿Alguien sabe cómo deshacerse de esta línea?

Editar:

Quería que se vea a continuación:


Disculpas de antemano en caso de que ya hayas considerado esto, pero creo que lo que estás buscando es ''TableView.SeparatorInset'' esto se aplicaría a tu renderizador en lugar de a la xaml que estás usando en tu PCL. Puede encontrar la documentación sobre el diseño de las tablas en este enlace .

P.EJ

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

Mover el recuadro del separador solucionará el problema que vi mencionar en los comentarios de la otra respuesta sobre el cambio de la tabla completa. Por favor, avíseme si ya ha intentado esto, es la solución más simple, pero hay otras opciones disponibles para usted. (Simplemente no son tan amables).

Editar: Ejemplo de una forma de lograr tus objetivos creando tus propios separadores, no mi favorito, pero también resolvería el problema que resaltaste, ya que tendrías el control total sobre el diseño de un separador. Consulte este enlace


Soy novato de xamarin pero, según esta publicación, debes hacerlo en las subclases UITableView y en tu UITableViewCell.

Espero que esto ayude. :)