Как добавить слайд анимацию? - PullRequest
0 голосов
/ 05 июля 2019

Можно ли сделать анимацию подобным образом: проведите пальцем вверх, чтобы скрыть вид и развернуть вид таблицы.При просмотре показа пальцем вниз.

Я проиллюстрировал то, что хочу, на скриншоте ниже:

screenshot

1 Ответ

0 голосов
/ 08 июля 2019

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

enter image description hereenter image description here

При входе в этот контроллер установите 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
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...