动画 inputAccessoryView 的高度 Swift
Animate the height of inputAccessoryView Swift
您好,我试图在单击后更改设置为 inputAccessoryView 的按钮的高度。
不幸的是,它似乎只改变了位置而没有改变高度。
谁能帮帮我?在我的代码下面。
谢谢!
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var textField: UITextField!
var SendButton: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
override func viewDidLoad() {
super.viewDidLoad()
SendButton.frame = CGRectMake(0, 0, UIScreen.mainScreen().applicationFrame.width, 30)
SendButton.backgroundColor = UIColor(red: 184/255.0, green: 56/255.0, blue: 56/255.0, alpha: 1)
SendButton.setTitle("Send", forState: .Normal)
SendButton.addTarget(self, action: "sendNotification", forControlEvents: UIControlEvents.AllEvents)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func sendNotification(){
UIView.animateWithDuration(1, animations: {
self.SendButton.frame = CGRectMake(0, -340, UIScreen.mainScreen().applicationFrame.width, 30)
self.SendButton.backgroundColor = UIColor(red: 300/255.0, green: 56/255.0, blue: 56/255.0, alpha: 1)
self.SendButton.setTitle("Hello", forState: .Normal)
})
}
func textFieldDidBeginEditing(textField: UITextField) {
textField.inputAccessoryView = self.SendButton
}
}
在您的动画块中,您正在更改 CGRectMake 中帧的 y 位置而不是高度。这就是为什么位置在变化而不是高度在变化的原因。
UIView.animateWithDuration(1, animations: {
// Your problem is the line below
self.SendButton.frame = CGRectMake(0, -340, UIScreen.mainScreen().applicationFrame.width, 30)
})
函数CGRectMake的函数参数为
CGRectMake(xPosition, yPosition, width, height)
将下面的代码更改为您想要的高度。
UIView.animateWithDuration(1, animations: {
self.SendButton.frame = CGRectMake(0, 0, UIScreen.mainScreen().applicationFrame.width, yourDesiredHeight)
})
但这对更改输入附件的高度没有帮助。
首先添加一个单独的 UIView
作为输入附件(增加高度)并将按钮添加到此 UIView
中。之后为里面的按钮设置动画。这行得通。
您可以查看要点中的代码
https://gist.github.com/rakeshbs/539827925df923e41afe
您好,我试图在单击后更改设置为 inputAccessoryView 的按钮的高度。
不幸的是,它似乎只改变了位置而没有改变高度。
谁能帮帮我?在我的代码下面。
谢谢!
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var textField: UITextField!
var SendButton: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton
override func viewDidLoad() {
super.viewDidLoad()
SendButton.frame = CGRectMake(0, 0, UIScreen.mainScreen().applicationFrame.width, 30)
SendButton.backgroundColor = UIColor(red: 184/255.0, green: 56/255.0, blue: 56/255.0, alpha: 1)
SendButton.setTitle("Send", forState: .Normal)
SendButton.addTarget(self, action: "sendNotification", forControlEvents: UIControlEvents.AllEvents)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func sendNotification(){
UIView.animateWithDuration(1, animations: {
self.SendButton.frame = CGRectMake(0, -340, UIScreen.mainScreen().applicationFrame.width, 30)
self.SendButton.backgroundColor = UIColor(red: 300/255.0, green: 56/255.0, blue: 56/255.0, alpha: 1)
self.SendButton.setTitle("Hello", forState: .Normal)
})
}
func textFieldDidBeginEditing(textField: UITextField) {
textField.inputAccessoryView = self.SendButton
}
}
在您的动画块中,您正在更改 CGRectMake 中帧的 y 位置而不是高度。这就是为什么位置在变化而不是高度在变化的原因。
UIView.animateWithDuration(1, animations: {
// Your problem is the line below
self.SendButton.frame = CGRectMake(0, -340, UIScreen.mainScreen().applicationFrame.width, 30)
})
函数CGRectMake的函数参数为CGRectMake(xPosition, yPosition, width, height)
将下面的代码更改为您想要的高度。
UIView.animateWithDuration(1, animations: {
self.SendButton.frame = CGRectMake(0, 0, UIScreen.mainScreen().applicationFrame.width, yourDesiredHeight)
})
但这对更改输入附件的高度没有帮助。
首先添加一个单独的 UIView
作为输入附件(增加高度)并将按钮添加到此 UIView
中。之后为里面的按钮设置动画。这行得通。
您可以查看要点中的代码
https://gist.github.com/rakeshbs/539827925df923e41afe