Ios 滚动选择UITextField上的UIScrollView,可以';我买不到合适的尺码
我得到的是一个UIScrollView,里面有一个containerview。这有一个嵌入式UITableViewcontroller,其中包含静态单元格。在静态单元格中选择UITextField时,我希望滚动UIScrollView。我试了两种方法,1。计算位置,2。计算单元索引。在选择任意UIField时,这两种方法都会得到相同的值。有人能帮我把这个修好吗 我用了这个问题:Ios 滚动选择UITextField上的UIScrollView,可以';我买不到合适的尺码,ios,swift,uiscrollview,Ios,Swift,Uiscrollview,我得到的是一个UIScrollView,里面有一个containerview。这有一个嵌入式UITableViewcontroller,其中包含静态单元格。在静态单元格中选择UITextField时,我希望滚动UIScrollView。我试了两种方法,1。计算位置,2。计算单元索引。在选择任意UIField时,这两种方法都会得到相同的值。有人能帮我把这个修好吗 我用了这个问题: 这是一个愚蠢的错误,我选择了一个默认字段作为activefield 我替换了: var-activeField=se
这是一个愚蠢的错误,我选择了一个默认字段作为activefield 我替换了:
var-activeField=self.container?.groupField.superview?.superview
致:
var-activeField=self.container?.activeField.superview?.superview
建议:使用
func keyboardWasShown(notification : NSNotification){
var info = notification.userInfo
// var kbSize = info(UIKeyboa
if let userInfo = notification.userInfo {
if let kbSize = (userInfo[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
let contentInsets = UIEdgeInsets(top: 0, left: 0, bottom: kbSize.height, right: 0)
scrollView.contentInset = contentInsets;
scrollView.scrollIndicatorInsets = contentInsets;
//first approach
println("---- approach 1 ------")
var activeField = self.container?.groupField.superview?.superview
println(activeField!.frame.origin)
//prints (110.0, 5.0)
//second approach
println("---- approach 2 ------")
var cell = self.container?.groupField.superview?.superview as! UITableViewCell
var table = self.container?.view as! UITableView
var index = table.indexPathForCell(cell)
println("index: \(index?.row)")
//prints always 4
var aRect = self.view.frame
aRect.size.height -= kbSize.height
// println("aRect: \(aRect)")
if (!CGRectContainsPoint(aRect, activeField!.frame.origin) ) {
println("ActiveField: \(activeField!.frame.origin.y)")
var scrollPoint = CGPointMake(0.0, activeField!.frame.origin.y-kbSize.height)
scrollView.setContentOffset(scrollPoint, animated:true)
}
}
}
}