【问题标题】:Resize UIView in the opposite direction向相反方向调整 UIView 的大小
【发布时间】:2011-11-03 21:11:18
【问题描述】:

当您调整 UIView 的大小时,宽度/高度会向右/向下增加。有没有办法让它走向相反的方向?我以为这可能是layer.anchorPoint 可以实现的,但看起来不像。

【问题讨论】:

  • 但是如果你改变框架的x和y,方向可能相反。例如,从 (10,10,10,10) 到 (0,0,20,20) 的矩形。如果我错了,请纠正我。
  • @Mat 好吧,这并不完全相反,您正在重新定位它。我同意最终结果是一样的。但基本上,我很好奇你是否可以在 iOS 中实现,相当于这种 CSS 样式:position:absolute; bottom:0; right:0;。如果你调整这个元素的大小,它会向左/上方向移动。
  • 我很好奇您使用的是什么resize 方法?调整框架是我调整事物大小的主要方式,因此这种调整底部/右侧视图大小的想法取决于调用者设置框架以实现这种情况。

标签: iphone objective-c ios ipad


【解决方案1】:

最快的方法是重新制作视图的框架。

假设你想在“相反”方向将它的宽度和高度增加 10。

这样就可以了。

view.frame = CGRectMake(view.frame.origin.x - 10, view.frame.origin.y - 10, view.frame.size.width + 10, view.frame.size.height + 10);

你可以把它放在一个更容易的方法中:

-(void)inverseResizeView(UIView *)view width:(int)deltaWidth height:(int)deltaHeight{
   view.frame = CGRectMake(view.frame.origin.x - deltaWidth, view.frame.origin.y - deltaHeight, view.frame.size.width + deltaWidth, view.frame.size.height + deltaHeight);
}

【讨论】:

  • UIView 上的类别会更容易,无需传递UIView 或担心“此方法属于哪个文件”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多