I am listing some items on the UI. If I tap on an item it will expand and show its details. I set everything on the UI including details initially and hide the details part. When I tap on the item I change the visibility of the details and showing it on UI. This feature is working fine on android and breaking in ios. I have uploaded a sample project here for reference.
Screenshot:

Xaml.cs
private void ItemTapped(object sender, ItemTappedEventArgs e)
{
var selectedItem = (Contact)e.Item;
if (selectedItem != null)
{
if (phoneId == selectedItem.phoneOne)
{
Hide(selectedItem);
phoneId = "";
}
else
{
Open(selectedItem);
}
}
addressbook_listview.SelectedItem = null;
}
private void Open(Contact selectedItem)
{
foreach (var item in contactsList)
{
item.PhoneVisibility = false;
}
selectedItem.PhoneVisibility = true;
phoneId = selectedItem.phoneOne;
}
private void Hide(Contact selectedItem)
{
selectedItem.PhoneVisibility = false;
}
Xaml
<ListView
x:Name="addressbook_listview"
Grid.Row="1"
BackgroundColor="Black"
ItemTapped="addressbook_listview_ItemTapped"
SelectionMode="None"
HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout
Padding="10"
Orientation="Vertical">
<StackLayout
Grid.Column="1"
VerticalOptions="CenterAndExpand"
Margin="5,0,0,0">
<Label
Text="{Binding contactName}"
TextColor="White">
<Label.FontSize>
<OnIdiom x:TypeArguments="x:Double">
<OnIdiom.Phone>15</OnIdiom.Phone>
<OnIdiom.Tablet>20</OnIdiom.Tablet>
<OnIdiom.Desktop>15</OnIdiom.Desktop>
</OnIdiom>
</Label.FontSize>
</Label>
<Label
Text="{Binding phoneOne}"
TextColor="White">
<Label.FontSize>
<OnIdiom x:TypeArguments="x:Double">
<OnIdiom.Phone>15</OnIdiom.Phone>
<OnIdiom.Tablet>20</OnIdiom.Tablet>
<OnIdiom.Desktop>15</OnIdiom.Desktop>
</OnIdiom>
</Label.FontSize>
</Label>
</StackLayout>
<StackLayout
HorizontalOptions="CenterAndExpand"
Margin="0,10,0,0"
IsVisible="{Binding PhoneVisibility}"
Orientation="Vertical">
<StackLayout
Orientation="Horizontal">
<Label
Text="Phone 1"
TextColor="White">
<Label.FontSize>
<OnIdiom x:TypeArguments="x:Double">
<OnIdiom.Phone>15</OnIdiom.Phone>
<OnIdiom.Tablet>20</OnIdiom.Tablet>
<OnIdiom.Desktop>15</OnIdiom.Desktop>
</OnIdiom>
</Label.FontSize>
</Label>
<Label
Text="{Binding phoneOne}"
TextColor="White">
<Label.FontSize>
<OnIdiom x:TypeArguments="x:Double">
<OnIdiom.Phone>15</OnIdiom.Phone>
<OnIdiom.Tablet>20</OnIdiom.Tablet>
<OnIdiom.Desktop>15</OnIdiom.Desktop>
</OnIdiom>
</Label.FontSize>
</Label>
</StackLayout>
<BoxView HeightRequest="0.5"
HorizontalOptions="FillAndExpand"/>
<StackLayout
Orientation="Horizontal">
<Label
Text="Phone 2"
TextColor="White">
<Label.FontSize>
<OnIdiom x:TypeArguments="x:Double">
<OnIdiom.Phone>15</OnIdiom.Phone>
<OnIdiom.Tablet>20</OnIdiom.Tablet>
<OnIdiom.Desktop>15</OnIdiom.Desktop>
</OnIdiom>
</Label.FontSize>
</Label>
<Label
Text="{Binding phoneTwo}"
TextColor="White">
<Label.FontSize>
<OnIdiom x:TypeArguments="x:Double">
<OnIdiom.Phone>15</OnIdiom.Phone>
<OnIdiom.Tablet>20</OnIdiom.Tablet>
<OnIdiom.Desktop>15</OnIdiom.Desktop>
</OnIdiom>
</Label.FontSize>
</Label>
</StackLayout>
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.Footer>
<Label/>
</ListView.Footer>
</ListView>
