- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多个部分的 UITableViewController,是动态创建的。每个部分的其中一行包含一个 UIWebView 作为它的 accessoryView。 UIWebView 预先填充了 HTML,以允许编辑其中的文本。当 UIWebView 被点击时,tableView 滚动,这样包含 UIWebView 的行就在键盘上方;键盘出现,UIWebView 成为第一响应者。如果 UIWebView 位于 tableView 的顶部,则此方法工作正常,因此不需要滚动表格。但是,如果点击下方的一行以滚动表格,则 UIWebView 的 scrollView 的 contentInset 会发生变化。具体来说,添加了 contentInset 的 bottom 值,使 UIWebView 变长变细,而不是矩形。
我已经上传了屏幕截图来展示这一点:
选择 UIWebView 之前:
选择UIWebView后:
UIWebView退出第一响应者状态,键盘dismiss后,恢复正常。
我知道正在调整的是 contentInset 属性,因为我使用键值“contentInset”添加了 webView 的 scrollView 的观察者,我可以观察到它的变化,甚至记录它并确认它已经改变。
最佳答案
原来问题不是contentInset,而是UIWebView内置的UIScrollView的contentOffset。这是我修复它的方法:
@interface SomeViewController ()
@property BOOL monitorContentOffsetChanges;
@end
@implementation SomeViewController
- (void)webViewCreationMethod {
UIWebView *myWebView = [[UIWebView alloc] init];
//Setup webView
//Observe any changes to the scrollView's contentOffset property
[[webView scrollView] addObserver:self forKeyPath:@"contentOffset" options:0 context:NULL];
[self setMonitorContentOffsetChanges:YES];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
//The webView's contentOffset was changed
if (object == [[self webView] scrollView] && [keyPath isEqualToString:@"contentOffset"] && [self monitorContentOffsetChanges]) {
//Stop responding to changes in the contentOffset to prevent recursive calling of this method
[self setMonitorContentOffsetChanges:NO];
//Force the contentOffset back to zero
[[[self webView] scrollView] setContentOffset:CGPointZero animated:NO];
//Start monitoring changes to the contentOffset again in case of future changes
[self setMonitorContentOffsetChanges:YES];
}
}
@end
此解决方案是必需的,因为 UIWebView 的 scrollView 属性是只读的,因此您不能将 UIScrollView 子类化并覆盖 setContentOffset 以不采取任何操作并将其强制到 UIWebView 中。
我现在唯一不确定的是这个解决方案是否对 App Store 安全。
关于ios - UITableviewController 与可编辑 UIWebView 的 contentInset 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28093221/
我正在进行一个项目,该项目为 UIImagePickerController 制作自定义 'Move and Scale' Controller。 (如果 imagePickerController.
我想将我的 contentInset 修改为动画标签的原点,因为它正在动画(我正在降低标签,我想将 View 滚动到标签的原点,因为它正在动画,这样它看起来就像它静止不动一样) 最佳答案 您可以像这样
有没有办法设置contentInset在 SwiftUI 上 List ?我需要调整底部插图以使最后一个项目在底部按钮上方可见。 我目前的解决方案如下Section(header: Color.cle
有人可以向我解释一下 UIScrollView 实例中的 contentInset 属性的用途吗?也许提供一个例子? 最佳答案 它设置内容 View 和封闭 ScrollView 之间的插图距离。 O
我在 TableView 中有一个文本框,当用户选择一个开关时,它会出现(变得可见)并弹出一个键盘,当用户关闭开关时,TextBox 消失并且键盘隐藏。在键盘出现和消失期间,我想将 tableView
我正在尝试实现一个自定义顶部栏,它的行为类似于 iOS 11+ 大标题导航栏,当向下滚动内容时,该栏的大标题部分会折叠: 不同之处在于我的栏需要一个自定义高度以及一个在滚动时不会折叠的底部部分。我设法
我有一个自定义 UIView,其中有一个 UIScrollView 作为 subview 。我的问题是当 View 调整大小时,我希望调整 ScrollView 的大小并将其 contentInset
我正在构建一个示例,我可以在其中发表评论,我每次发表评论时都使用 tableView 添加一个单元格。它主要被处理但是当我想发表评论时我遇到了一个问题,tableview 底部与键盘高度相同但为空,如
这是我的 View ,左边是键盘不显示时的 View ,右边是键盘显示时我想要实现的 View 。 我所有的字段都被添加到一个 ScrollView ,然后我像这样设置约束,field1 topCon
谁能帮我解决一个我想不通的动画问题。我在“拉动刷新”中实现了以下代码。 [UIView beginAnimations:nil context:NULL]; [UIView setAnimationD
我已经在方法- (void)viewDidLoad 中设置了tableView的contentInset,属性是self.tableView.contentInset = UIEdgeInsetsMa
我尝试将自定义 contentInset 设置为 UISearchdisplayControllers searchResultsTableView。 初始化后 _searchController =
我在 UITextView 中显示文本。我需要对文本应用一些填充。当我将值(value)用于最高职位时,它正在工作。如果我将值用于其他位置,则它不起作用。 txtt_bgImage = [U
我有一个带有表格单元格的表格 View 。每个单元格都有一个文本字段。我有以下代码来防止底部的几个单元格被键盘挡住 @objc func keyboardWillShow(_ notification
我遇到了一个问题,contentInset 无法让 UIScrollView 使用键盘弹出窗口。它有点有效:出于某种原因我需要大数字(可能高于 View 的高度?)才能做任何事情,尽管 content
我正在为 iOS 7 重构我的应用程序,我在 QLPreviewController 的顶部和下方有一个带有 UIToolBar 的 View Controller 。我将 UIToolBar tra
我想要一些剩余空间,10 像素,到 UITablViewcCell。我在下面编写代码,但它的内容是水平滚动的。我不想要那个。 self.tableView = [[UITableView alloc]
在 iOS 上,当您在 WKWebView 的 ScrollView 上设置 contentInset 时,它似乎让 Web View 认为页面的内容比它大是。例如,如果您为一个大部分为空的页面提供顶
我对 contentInsent 有奇怪的问题。我正在实现“拉动和释放”以在 UITableView 上刷新并且一切正常,但在某些情况下我想在没有用户交互的情况下显示“加载”状态。所以我想我将按以下方
当键盘被隐藏时, ScrollView 应该回到它的原始 contentInset,但它在 iOS7 中不起作用。在显示键盘时设置 scrollview 的 contentInset 是有效的,但是当
我是一名优秀的程序员,十分优秀!