IOS双击UITableView中的单元格原因项目不会滚动

时间:2016-01-26 10:10:13

标签: ios objective-c iphone uitableview

我有一个$paragraph = ' <p class="instruction"> <sup id="num1" class="s">80</sup> Hello there and welcome to Stackoverflow! You are welcome indeed. </p> '; // Split up $paragraph into an array of tags and words $paragraphArray = preg_split('/(<.*?>)|\s/', $paragraph, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); $wordIndicies = array(0, 4); $replaceWith = 'REPLACED'; foreach ($wordIndicies as $wordIndex) { for ($i = 0; $i <= $wordIndex; $i++) { // if this element starts with '<', element is a tag. if ($paragraphArray[$i]{0} == '<') { // push wordIndex forward to compensate for found tag element $wordIndex++; } // when we reach the word we want, replace it! elseif ($i == $wordIndex) { $paragraphArray[$i] = $replaceWith; } } } // Put the string back together $newParagraph = implode(' ', $paragraphArray); // Test output! echo(htmlspecialchars($newParagraph)); ,每个单元格中包含UITableView 当我单击单元格中的UITextField时,键盘将显示并覆盖我的单元格。因此,我使用。

将我的单元格移到顶部
UITextField

如果我在每个单元格上使用单击,我的应用程序就可以正常工作 但是,我在每个单元格上使用双击(这意味着我很快点击它2次),我的单元格将停止滚动到顶部。

7 个答案:

答案 0 :(得分:3)

在这一行

@Component()

可能是2个错误。

首先,您必须确保捕获的inputView是您想要的视图。 其次,您应该使用适当的方法将获取的点转换为正确的视图。

参见参考:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/doc/uid/TP40006816-CH3-SW52

进一步调查需要更多背景。

答案 1 :(得分:2)

TPKeyboardAvoiding似乎是一个解决方案。

答案 2 :(得分:2)

你确定scrollPoint是否正确?

我刚刚创建了一个带有固定偏移的示例项目,一切都运行得很好。单击和双击特定UITextField的{​​{1}}后,表格视图会向上滚动。

UITableViewCell

答案 3 :(得分:1)

而不是做代码手动调整你的tableview框架,     让我给你一个建议,你可以使用IQKeyboardManager,它的pod在cocoapods中可用     当点击单元格的文本字段时,它将自动滚动。

答案 4 :(得分:1)

尝试使用第三方库IQKeyboardManager它将帮助您解决此问题。

https://github.com/hackiftekhar/IQKeyboardManager

替换AppDelegate.m文件中的以下代码,然后您不需要使用scrollview方法来处理键盘: -

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[IQKeyboardManager sharedManager] setEnable:YES];

    [self.window makeKeyAndVisible];
    return YES;

}

答案 5 :(得分:1)

您是否创建了单独的UITableViewCell类?

我相信当您滚动UITableView时,您的UI会冻结,或者当您经常两次选项卡时,UITableView会停止响应或花时间做出响应。

答案 6 :(得分:0)

这是一个工作示例。您可以使用滚动视图的 contentInset scrollIndicatorInsets 属性来避免出现键盘。您应该注册键盘通知。使用通知中的信息来确定键盘的大小 - 你永远不知道它会是什么。

使用内容插入是处理滚动视图的正确方法。如果您随后需要将编辑行滚动到视图中,请使用 UITableView.scrollToRowAtIndexPath(_:,atScrollPosition:,animated:)

请注意,当用户隐藏/显示完成栏时,它会做正确的事。

Router.route('/foo/:bar',{ // Route takes a single parameter
  name: 'foo',
  waitOn: function(){
    return Meteor.subscribe('fooPublication', this.params.bar);
  }
});