UIView 根据边缘调整大小
Posted
技术标签:
【中文标题】UIView 根据边缘调整大小【英文标题】:UIView resizing based on edges 【发布时间】:2012-12-01 06:19:01 【问题描述】:如何根据边缘调整UIView
的大小?
实际上我正在以编程方式创建UITextField
,如果用户愿意,他们可以通过拖动其边缘来增加和减少UITextField's
的高度和宽度..
我不想按比例改变它的高度和宽度。如果用户想要高度,那么只有高度会改变,如果宽度那么只有宽度。
所以我找到了以编程方式获取 One UIView
然后将 UITextField
放入其中的解决方案..
所以我的问题是,我们如何通过触摸 UIView 的边缘来改变 UIView 的高度和宽度?
我对@987654329@ 了如指掌,但不想这样。
我已经通过this stackoverw link. 也得到了this solution 但它对我没有用..
请建议我该怎么做?
更新
目前正在SPUserResizableView 上工作,我认为这会很有用..
感谢我所有的朋友..
【问题讨论】:
为什么第一个链接没用?它将很好地实现调整大小。你有更具体的目标吗? @MilesAlden 当您使用 UIPanGestureRecognizer 时,它将按比例增加宽度和高度。我不会那样做 @MehulUIPanGestureRecognizer
报告手势的 X 和 Y 偏移量。但是您可以在用户拖动高度手柄时忽略 X 偏移量,而当用户拖动宽度手柄时忽略 Y 偏移量。
@Mehul 另外,您还没有解释为什么 SPUserResizableView
对您没有用处。
@robmayoff 抱歉没有更新我的问题,但我目前正在尝试将其用于相同的目的..
【参考方案1】:
这很简单。 你听说过 -
TouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
TouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
TouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
TouchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;
你只需要在你的 UIView 类中添加这个方法。 然后通过某种计算,您可以做到这一点。 说当您触摸触摸开始时,方法会被调用...在触摸移动中,您可以移动 uiview 的动画以增加或减少高度或宽度。 因为上述所有函数都会为您提供 x 和 y 的坐标。
希望对你有所帮助。
【讨论】:
我知道而且很简单..但是你能详细说明一下吗..你做过吗?以上是关于UIView 根据边缘调整大小的主要内容,如果未能解决你的问题,请参考以下文章