【发布时间】:2017-01-20 22:44:49
【问题描述】:
我有一个包含UIButton 的 xib 文件。我控制+拖动按钮来创建一个动作。按钮的位置必须动态设置。下面的方法是从更新按钮位置的drawRect: 方法调用的。
-(void)updateButtonPosition {
CGFloat xPos = self.label.frame.origin.x + self.label.frame.size.width;
CGFloat yPos = self.label.frame.origin.y + self.label.frame.size.height - 25;
CGRect frame = CGRectMake(xPos, yPos, self.button.frame.size.width, self.button.frame.size.height);
self.button.frame = frame;
}
但我注意到调用此函数会将UIButton 与我通过控制+拖动创建的操作断开连接(即,当我在应用程序运行时单击按钮时没有任何反应)。我评论了调用此函数的部分。现在按钮开始工作并调用了操作方法。因此,更改框架断开 UIButton 与其操作方法。
编辑:为其所有超级视图启用用户交互。我没有使用自动布局。项目就是这样。
如何更改按钮的框架,以便在单击按钮时也调用该操作?
【问题讨论】:
-
试着把你的按钮放在前面。
-
它已经在最前面了。
-
你怎么知道它是disconneted?该动作是否已完全删除?我几乎不相信这种方法会做这样的事情,所以你能详细说明一下吗?当您更新边界时更有可能将按钮放在其超级视图边界之外。
-
@holex 看我的回答。
-
@oye,不用感谢我的帮助 :)
标签: ios objective-c uibutton drawrect ibaction