我在ViewController中有UITableView
(不是UITableViewController
),每行UITextFields
。我希望TableView能够自动滚动,以便始终显示正在编辑的行 行。这允许用户点击下一行来编辑它。内置的iOS Reminders应用程序具有此行为。
我已关注Apple's advice on managing the keyboard,但只滚动显示您正在键盘上方编辑的行,不是其下方的行。
我尝试在scrollRectToVisible:
调整框架,但没有区别。实际上,注释掉这行代码似乎根本就没有效果。
似乎UITableView
总是会尝试滚动显示正在键盘上方编辑的UITextfield
,而我无法找到调整或覆盖此行为的方法,以便它也显示了它下面的行。
更新
我发现可以通过覆盖scrollTextFieldToVisible
的私有UITextField
方法来阻止自动滚动行为。
但是,Apple在链接文档中提供的自动滚动代码仍无效。
答案 0 :(得分:0)
您可以尝试设置setContentOffset属性而不是scrollRectToVisible。喜欢
<table class="table attendance" ng-repeat="task in groupAttendance| groupBy: 'taskId'">
<caption class="header-primary">
<a>Task {{($index + 1)}} | {{task[0].title}}</a>
</caption>
<thead>
<tr class="header-secondary">
<th ng-repeat="date in task| unique: 'classDate'">
{{getDayOfWeek(date.classDate)}}
<br> {{formatClassDate(date.classDate)}}
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="student in task | groupBy: 'studentId' | toArray: true | orderBy: orderByName">
<td ng-repeat="attendance in student track by attendance.attendanceId">
<md-button class="attendance-button" ng-click="showEditAttendanceDialog($event, attendance)" ng-disabled="isDisabled">
<md-icon ng-class="{'green-700': present, 'red-700': absent, 'yellow-700': absentWithReason}">
{{attendanceStatus(this)}}
</md-icon>
</md-button>
</td>
</tr>
</tbody>
</table>
答案 1 :(得分:0)
请按照以下链接,这将使您的工作变得非常轻松。 只需添加文件并将tableview类名称设置为&#34; TPKeyboardAvoidingTableView&#34;