竖倾斜ScrollView
using UnityEngine;
using UnityEngine.EventSystems; public class ObliqueScroll : MonoBehaviour,IDragHandler
{
public RectTransform viewport;
public ObliqueScrollContent content; private Transform target;
private float space_min;
private float space_max; private Vector3 position_c; private void OnValidate()
{
if (content != null)
{
target = content.transform;
space_min = ;
space_max = target.childCount * (content.v_cell.y + content.v_space) - viewport.rect.height;
if (space_max < )
{
space_max = ;
}
}
} public void OnDrag(PointerEventData eventData)
{
float move_c = eventData.delta.y;
position_c = target.localPosition;
position_c.y += move_c;
position_c = CheckOut(position_c);
target.localPosition = position_c;
} private Vector3 CheckOut(Vector3 position)
{
if (position.y <= space_min)
{
position.y = space_min;
}
if (position.y >= space_max)
{
position.y = space_max;
}
return position;
}
}
using UnityEngine; public class ObliqueScrollContent : MonoBehaviour
{
public Vector2 v_cell;
public float v_space;
public float v_offset; private Vector2 half = new Vector2(0.5f, 0.5f); private void OnValidate()
{
Refresh();
} private void Refresh()
{
for (int i = ; i < transform.childCount; i++)
{
Transform cell = transform.GetChild(i);
float pos_x = -i * v_offset;
float pos_y = -i * (v_cell.y + v_space);
RefreshCell(cell, new Vector3(pos_x, pos_y, ));
}
} private void RefreshCell(Transform cell, Vector3 position)
{
RectTransform rt = (RectTransform)cell;
rt.anchorMin = half;
rt.anchorMax = half;
rt.pivot = half;
rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, v_cell.x);
rt.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, v_cell.y);
rt.localPosition = position;
}
}
只是一个思路,拖动很生硬
Scroll(加ObliqueScroll, 倾斜X度)
viewport(加mask)
content(加ObliqueScrollContent, 倾斜-X度)
item1
item2
item3
竖倾斜ScrollView的更多相关文章
- 【水滴石穿】react-native-app
项目地址:https://github.com/WQone/react-native-app 这个是一个非常优秀的小姐姐写的,希望大家能够以她为榜样,一起加油进步呀- 先看效果 分析package.j ...
- React-Native学习系列(二) Image和ScrollView
接下来,我们接着(一)继续讲,今天我们学习的是Image组件和ScrollView组件. Image组件 Image:一个用于显示多种不同类型图片的React组件.那么要如何使用呢? 引入本地图片: ...
- scrollView的讲解
今天就讲下UIScrollView的一些事情,这个可以拖动的组件无论在应用还是游戏开发都会经常用到,所以我们就一定要更加熟悉它了.下面我们开始下手咯. (1)初始化 一般的组件初始化都可以alloc和 ...
- SwipeRefreshLayout嵌套ScrollView包裹复杂头布局和RecyclerView
布局如下:上面是一个描述有:头像和部分信息的布局,底部是一个RecyclerView: 想法:想实现RecyclerView向上滚动的时候,隐藏上面的头像布局信息:使用了 CoordinatorLay ...
- iOS开发——项目篇—高仿百思不得姐 05——发布界面、发表文字界面、重识 bounds、frame、scrollView
加号界面(发布模块) 一.点击加号modal出发布模块,创建控件,布局控件1)使用xib加载view,如果在viewDidLoad创建控件并设置frame 那么self.view 的宽高 拿到的是xi ...
- RecyclerView和ScrollView嵌套使用
我们的recyclerView有多个layoutmanager,通过重写layoutmanager的方法就可以让recyclerView和ScrollView嵌套了.但是请注意,如果recyclerV ...
- ScrollView图片分页显示-简单
用到的控件: 1>UIScrollView:宽度和图片的宽度一样,因为分页的代码就一句 // 设置分页,这个分页的原理实际上是按照ScrollView的宽进行分页的,这里的图片的宽由于和Scro ...
- ScrollView嵌套recyclerView出现的滑动问题
记得以前在解决scrollView与ListView嵌套问题时,那个时候是自定义了listView去测量listView高度,今天项目中刚 好碰到了要用recycerView,同样也是嵌套在scrol ...
- 制作滚动视图(ScrollView)
怎样判断是否应当使用滚动视图 所谓的滚动视图,是指一个可以滑动的视窗,视窗大小和位置固定不变,视窗内的内容用户可以通过手指滑动或者拖动滚动天来进行滚动浏览. 滚动视图的目的是为了解决同类内容过多,一个 ...
随机推荐
- 【分享】Asp.net Core相关教程及开源项目
入门 全新的ASP.NET: https://www.cnblogs.com/Leo_wl/p/5654828.html 在IIS上部署你的ASP.NET Core项目: https://www.c ...
- RTX任务管理
默认情况下用户创建的任务栈大小是由参数Task stack size决定的. 如果觉得每个任务都分配同样大小的栈空间不方便的话,可以采用自定义任务栈的方式创建任务.采用自定义方式更灵活 ...
- C++将时间格式转换成秒数
#include <stdio.h> #include <time.h> #include <string.h> #include <stdlib.h> ...
- Python判断列表是否已排序的各种方法及其性能分析
目录 Python判断列表是否已排序的各种方法及其性能分析 声明 一. 问题提出 二. 代码实现 2.1 guess 2.2 sorted 2.3 for-loop 2.4 all 2.5 numpy ...
- game 角色相关记录
GameServer启动 (role, misc, mail, offline)从共享内存中加载数据到m_mBlob中如果共享内存没有则从DB加载 主要是修改了同步共享内存,共享内存同步数据库{//r ...
- [原]在使用ubuntu14.04,安装devstack的时候报错./stack.sh: line 463: generate-subunit: command not found
=======在使用ubuntu14.04,安装devstack的时候报错./stack.sh: line 463: generate-subunit: command not found 2016- ...
- rabbitmq - java client lib一二事
由于不可抗因素, 需要给对接方撸一个client的demo.基于比较老的jdk. 所幸找到了这里:http://www.rabbitmq.com/releases/rabbitmq-java-clie ...
- 第三天 Linux简单命令
2018-5-22 15:21:59 使用 atom 可以在windows环境下同步代码与linux (汉化配置好就可以啦) 2018-4-13 18:09:31 该看32节啦 1.man +陌生命 ...
- hdu 2097 sky数(进制转换)
Sky数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Java开发岗位面试题归类
一.Java基础 1. String类为什么是final的. ( 1.由于String类不能被继承,所以就不会被修改,这就避免了因为继承引起的安全隐患: 2.String类在程序中出现的频率比较高,如 ...