【问题标题】:Positioning A Button定位按钮
【发布时间】:2011-07-21 23:54:35
【问题描述】:

如何在视图上动态定位按钮?

【问题讨论】:

  • 任何按钮,还是特定按钮?
  • 你想要一个指向 UIButton 的指针,还是它在视图中的位置等?更具体地提出您的问题。
  • 如何动态定位视图上的按钮?表示任何按钮
  • 据我所知,他问的是如何在运行时将按钮放置在视图中某个特定坐标处。
  • @fasttrack:true 实际上我需要提供动画效果,让用户看起来像按钮围绕一个点旋转

标签: iphone objective-c cocoa-touch


【解决方案1】:

好的,现在我们更好地理解了这个问题......

您可以通过设置其frame 在运行时放置按钮/UIComponent。这会将其放置在包含按钮的视图中的给定坐标处。

myButton.frame = CGRectMake(newX, newY, myButton.frame.width, myButton.frame.height);

如果您希望制作线性风格的动画(无曲线),请查找 CATransitions,参见 iPhone UIView Animation Best Practice。如果需要支持 iOS4 之前的设备,则不能使用 CATransitions,而必须使用 UIView 动画的旧方式。

要制作更复杂的动画,您可能不得不使用计时器,如果您尝试制作复杂的动画路径,这可能会产生轻微的抖动效果。

【讨论】:

  • 谢谢.. 最后.. 实际上我对 iPhone 开发非常陌生,因此我不知道如何提问:P
【解决方案2】:

使用以下方法获取视图的所有子视图的数组:

[myView 子视图]

遍历该数组并通过一些独特的特征检查您的按钮。 (您可以将按钮的标签属性设置为某个唯一值并检查该值)

【讨论】:

    【解决方案3】:

    设置 UIButton 的 tag 属性(例如,在界面生成器中,或以编程方式)。然后你可以走拥有视图的孩子:

    for (UIView *view in myView.subviews) {
        if (view.tag == 101 /*or whatever you set it to*/) {
            // things...
        }
    }
    

    【讨论】:

      【解决方案4】:

      试试这个代码

      for(UIView * view in self.view.subviews)
      {
           if([view isKindOfClass:[UIButton class]])
           {
                // view is button
           }
      }
      

      你也可以使用标签

      【讨论】:

      • 大概他想要一个特定的按钮?
      • 在这种情况下,他想要 view.subviews 中的特定组件(无需将其区分为按钮),在这种情况下,标签将是唯一的选择。 :)
      猜你喜欢
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多