- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要创建一个与内置提醒应用程序具有相同行为的应用程序。创建这个有一些问题:
我已经使用一些技巧解决了动态高度问题。
剩下的问题是:
如果单元格“完全”包含 UITextView,如何知道用户选择了哪个单元格?
现在我已经使用 textViewDidBeginEditing 方法来了解单元格并将 UITableView 滚动到它:
- (void)textViewDidBeginEditing:(UITextView*)textView
{
MemoViewCell* cell = (MemoViewCell *)[self parentCellFor:textView];
if (cell)
{
NSIndexPath* indexPath = [self.tableView indexPathForCell:cell];
currentIndexPath = indexPath;
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}
}
- (UITableViewCell*)parentCellFor:(UIView*)view
{
if (!view)
return nil;
if ([view isMemberOfClass:[MemoViewCell class]])
return (UITableViewCell*)view;
return [self parentCellFor:view.superview];
}
如何在不失去焦点的情况下刷新cell高度?
为此,我使用了这种方法:
-(void)textViewDidChange:(UITextView *)textView
{
NSMutableDictionary *dataSourceItem = [self.model.dataSource objectAtIndex:currentIndexPath.row];
[dataSourceItem setObject:textView.text forKeyedSubscript:@"body"];
[self.model.dataSource setObject:dataSourceItem atIndexedSubscript:currentIndexPath.row];
[self.tableView beginUpdates];
[self.tableView endUpdates];
}
当文本更改时,我得到新文本,我在模型中更改它并调用 beginUpdated 和 endUpdates。
当然,这行得通,但一切都非常慢......你有什么想法以更优雅的方式实现这一点,也许......高效?
如果我调用 reloadRowsAtIndexPaths:我失去了对单元格的关注。
最佳答案
首先,如果你在你的动态高度技巧中使用委托(delegate)方法- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
,记得实现这个方法沿 - (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath;
,它在性能方面有很大帮助。
然后专注于您的特定项目,如果我正确理解您的目标,您真正想要的是仅在修改 TextView 时更新 TableView 的布局。当前,您在每次文本更改时更新它。您可能会考虑在 -(void)textViewDidChange:(UITextView *)textView
中使用条件,例如:
if ([textView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height !=
textView.frame.size.height) {
[self.tableView beginUpdates];
[self.tableView endUpdates];
}
仅当您现有的单元格布局符合 TextView 的固有内容大小时,作为示例给出的条件才有效,否则您将需要调整条件。
关于ios - XCode iOS7 - 带有 UITextView 的动态单元格,如 Reminder App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27744228/
看起来很简单,但我做不到。我想从我的 native 应用程序启动 native 提醒应用程序。 根据我的阅读,我需要使用 x-apple-reminder:// URL 方案,但它不会启动 Remin
当前Slack API for Reminders 允许开发人员为特定的人创建提醒。此提醒通过 Slackbot 直接发送给他们;但是,我希望将提醒发布在公共(public) channel 中。 R
您好:我在名为“Docs”的工作表上有一组单元格。单元格范围为 (B13:C23)。当用户进入此页面时,他们应该用 0 到 6 之间的值填写每个单元格。我的问题:是否有一些代码可以附加到此表中,如果用
在 iOS 5 引入的提醒应用程序中,您可以设置地理围栏,因此当您靠近某个地址时,您的提醒就会提醒。还可以为特定日期配置基于位置的提醒。 Apple 在处理基于位置和时间的提醒方面非常高效,因为他们直
'/*========================================================================= &nbs
我正在研究 Bixby 集成,我正在浏览 Bixby 文档,我有一些关于 Bixby 提醒的营销信息,但我正在寻找如何以编程方式或通过 API 创建提醒,但我没有找到任何文档中的信息。 最佳答案 这是
我希望我的应用程序与 Reminders.app 同步。 (我的应用程序利用核心数据) 我已经完成了一个原型(prototype)并且它可以工作,但是有一些我无法思考的错误。 现在我的同步算法如下所示
如果我选择默认提醒应用程序在某天(例如 2 月 10 日)提醒我某事,并且在某个位置,它会显示类似“2 月 10 日,您的基于位置的提醒将处于事件状态”之类的内容。 因此它甚至可以在后台设置基于位置的
我正在开发一个具有提醒功能的应用程序。我使用的代码如下设置提醒和事件: private void addReminder(int statrYear, int startMonth, int star
我刚开始在 GNU/Linux 上使用提醒工具:remind man page .我有以下 bash 函数使用提醒来获取今天、明天和本周的提醒 today() { remind $SCHEDULE
我想通过添加“稍后提醒我”操作来扩展我的本地通知功能。换句话说,如果用户点击“稍后提醒我”按钮,我想在设定的时间后重新显示通知。 即使我的应用程序中的所有内容都应该正确连接(检查通知是否启用、设置通知
当 jsevent 触发时,它会将链接参数转发到按钮的 data-url 属性,当用户单击该按钮时,它会重定向到 django 后端 View ,但解析 JS 行时出现问题 $('#btn_del')
我在一个研究项目中使用 Azure Durable Functions,我想验证在持久实体中实现计时器/提醒概念的最佳方法是什么。 在 Service Fabric 中,Actor 可以安排“持久计时
我在一个研究项目中使用 Azure Durable Functions,我想验证在持久实体中实现计时器/提醒概念的最佳方法是什么。 在 Service Fabric 中,Actor 可以安排“持久计时
不幸的是,当我单击注册 Activity 上的“注册”按钮时。 主节。
我在我的网络应用程序中使用 Google Calendar API 来增删改查事件。 我想用值不发送任何提醒覆盖默认提醒设置。 我只找到了 overwrite the default , 但有一个新值
我目前正在为 iPhone 编写一个应用程序,但我的水平(水平滚动,而不是垂直滚动)UIScrollView 有一些问题。 UIScrollView的高度是260,宽度是320。它有2个页面,每个页面
有没有办法以编程方式打开 Apple Reminders 应用程序? 最佳答案 我已经在 Swift 5+ 和 iOS 13 上试过了,你需要使用下面的 url scheme。(之前 x-apple-
我一直在开发一款新应用,它通过地理围栏利用基于位置的提醒。 据我所知,为了做到这一点,应用程序必须通过以下方式请求授权: CLLocationManager.requestAlwaysAuthoriz
帮助,尝试从 EventKit 获取提醒列表的列表。这只是不返回任何东西。如果我将 EKEntityType.Reminder 更改为 .Event,我会得到日历(事件),所以我知道代码通常是好的。
我是一名优秀的程序员,十分优秀!