跟随手指展开 UIView
Posted
技术标签:
【中文标题】跟随手指展开 UIView【英文标题】:Expand UIView by follow finger 【发布时间】:2015-09-11 14:37:45 【问题描述】:在我的应用中,我在 UIView 中有一个 UITextView。 UITextView中有很多只读文本,我的UIView像屏幕宽度一样大,但高度不能包含UITextView中的所有内容。
我得到的第一个想法是创建一个手势并启动动画以在手势启动时增加 UIView 的维度。这是个好主意,但我想做得更好。
我想创建一个像通知中心这样的东西:在通知中心我点击系统栏,向下移动手指,我看到了这个视图的内容,我想在我的应用程序上复制它。换句话说,我想通过在显示屏上拖动手指来扩展 UIView 的尺寸。有谁知道是否有图书馆或解决方案可以做到这一点?
谢谢
【问题讨论】:
你试过这个吗:***.com/questions/8460119/… 我试过了,但它并没有达到我的意思......这是一个对其他应用程序有用的东西,但我会像操作系统的通知中心一样有同样的行为,你能帮我找到做这些事情的东西吗? 您的问题对我来说有点不清楚......您可能想采用 UIKitDynamic 吗? 我将尝试向您解释我的意思:我有一个小表格视图,其中任何一行都写有产品。如果我有很多行,这行在一个小表格视图中是不可见的,所以我正在搜索一个控制器,它允许我拖动表格视图的底部并展开它,这样我就可以读取所有行。行为应该类似于通知中心:您将手指放在时钟上并从上到下拖动条,它将显示通知中心。我希望现在很清楚 【参考方案1】:我找到了解决方案。我使用UIGestureRecognizer
并扩展/缩小UIView
,这是我所做的代码:
- (IBAction)handlePan:(id)sender
CGPoint translation;
CGRect screenRect = [[UIScreen mainScreen] bounds];
if (self.gestureRecognizer.state == UIGestureRecognizerStateBegan || self.gestureRecognizer.state == UIGestureRecognizerStateChanged)
translation = [self.gestureRecognizer translationInView:self.view];
[self.gestureRecognizer setTranslation:CGPointMake(0, 0) inView:self.view];
CGRect newFrame = self.draggableView.frame;
newFrame.size.width = self.draggableView.frame.size.width;
newFrame.size.height = self.draggableView.frame.size.height + translation.y;
[self.draggableView setFrame:newFrame];
else if (self.gestureRecognizer.state == UIGestureRecognizerStateEnded || self.gestureRecognizer.state == UIGestureRecognizerStateCancelled)
if (self.draggableView.frame.size.height + translation.y < screenRect.size.height / 2)
[self.buttonCloseView setHidden:YES];
[self.draggableView setFrame:frame];
else
[self.buttonCloseView setHidden:NO];
CGRect initialFrame = screenRect;
initialFrame.origin.x = 0;
initialFrame.origin.y = screenRect.origin.y + 20;
[self.draggableView setFrame:initialFrame];
我希望它对某人有用。
【讨论】:
以上是关于跟随手指展开 UIView的主要内容,如果未能解决你的问题,请参考以下文章