В Xamarin IOS вы можете попробовать с помощью UIScrollView
.Настройка PagingEnabled
быть уверенной, можете реализовать свои желания. (Follow ScrollView также полноэкранный в StoryBoard
)
ScrollView.ContentSize = new CGSize(UIScreen.MainScreen.Bounds.Size.Width, 2*ScrollView.Bounds.Size.Height);
ScrollView.PagingEnabled = true;
Код TableView:
UITableView uITableView = new UITableView(new CGRect(0, ScrollView.Bounds.Size.Height, UIScreen.MainScreen.Bounds.Size.Width, ScrollView.Bounds.Size.Height));
string[] tableItems = new string[] { "Vegetables", "Fruits", "Flower Buds", "Legumes", "Bulbs", "Tubers", "Vegetables", "Fruits", "Flower Buds", "Legumes", "Bulbs", "Tubers"};
uITableView.BackgroundColor = UIColor.Cyan;
uITableView.Source = new TableSource(tableItems);
public class TableSource : UITableViewSource
{
string[] TableItems;
string CellIdentifier = "TableCell";
public TableSource(string[] items)
{
TableItems = items;
}
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
UITableViewCell cell = tableView.DequeueReusableCell(CellIdentifier);
string item = TableItems[indexPath.Row];
//---- if there are no cells to reuse, create a new one
if (cell == null)
{ cell = new UITableViewCell(UITableViewCellStyle.Default, CellIdentifier); }
cell.TextLabel.Text = item;
return cell;
}
public override nint RowsInSection(UITableView tableview, nint section)
{
return TableItems.Length;
}
}
Персонализированный просмотр:
UIView upView = new UIView(new CGRect(0, 0, UIScreen.MainScreen.Bounds.Size.Width, ScrollView.Bounds.Size.Height));
upView.BackgroundColor = UIColor.DarkGray;
Последнее добавление их в ScrollView:
ScrollView.Add(upView);
ScrollView.Add(uITableView);
Изображение показано следующим образом: (Для лучшего отображения другой страницы в ScrollView, настройки цвета фона для upView и uITableView)
При входе в этот контроллер установите ContentOffSet на вторую страницу, затем сначала будет отображаться табличное представление, а при прокрутке вниз там будет отображаться upView.
ScrollView.SetContentOffset(new CGPoint(0, ScrollView.Bounds.Size.Height), true);
Если вы хотите добавить анимацию при прокрутке, добавьте Delegate
для прослушивания DraggingStarted
ScrollView.Delegate = new ScrollViewDelegate();
public class ScrollViewDelegate :UIScrollViewDelegate
{
public override void DraggingStarted(UIScrollView scrollView)
{
//base.DraggingStarted(scrollView);
if(scrollView.ContentOffset.Y == scrollView.Bounds.Size.Height)
{
//Add Animation herer
}
}
}