我有一个UITableView,总共有8个单元格(部分),其中6个包含textFields作为子视图,2个包含按钮,另一个包含按钮,另一个包含文本视图.现在我遇到了一个问题,因为我们都知道只有视图出现,可见单元格加载.所以当我的应用程序加载时,我能够查看5个单元格,前4个包含文本字段,第5个单元格带按钮.我可以看到当我显示时数组计数为4它通过登录控制台即
there are 4 objects in the array
Run Code Online (Sandbox Code Playgroud)
现在滚动表视图后,我可以观察到以下内容:
there are 6 objects in the array
Run Code Online (Sandbox Code Playgroud)
所以,正在发生的是如果我要保存在表视图中输入的数据,或者说编辑以更改现有数据,我被迫滚动表视图并在最后一个单元格中输入值.所以不能是总是与用户一起使用,因为我们不能指望他/她滚动表格视图并输入完整的表格/表格视图单元格条目.他/她做出的改变是什么,只需点击完成/保存它是什么. .!
更多我有一个选择器视图作为包含文本字段的最后一个单元格的输入视图作为subview.Hence在我的选择器视图中选择行方法我面临崩溃问题与最后一个单元格/部分(textField as subview)包含一个选择器视图这里是我的方法代码片段:
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
switch (tagValues)
{
case 105:
{
self.textField = [self.fields objectAtIndex:3];
self.textField.text = [self.reminder objectAtIndex:row];
}
break;
case 107:
{
//Crash occurring in this case,sometimes its working wonder why
self.textField = [self.fields objectAtIndex:5];
self.textField.text = [self.group objectAtIndex:row];
}
break;
}
}
**Note**:I am using the same textField for adding as subview to all 6 cells,but …
Run Code Online (Sandbox Code Playgroud) 我知道这里和那里有一些关于如何删除可能是全部或特定通知的本地通知的问题.我也经历了本地通知类引用并找到了一些方法,如重复时间间隔,开火日期,警报体,时区等...但我无法找到有关如何修改已经设置的开火日期的某种信息.如果用户设置今天的日期和下午4:50的通知,但是如果用户希望修改设定的日期/时间,发生的事情是通知在两种情况下都会触发.就编程伦理而言,这是一个大错!
实际上我想要的是必须取消之前的通知,即必须将日期修改为已编辑的日期,并且应在新日期设置并触发通知.
这是我如何设置通知,示例代码:
- (void)setNotification
{
//Set notification after confirmation of saved data
Class cls = NSClassFromString(@"UILocalNotification");
reminderNotification = [[cls alloc] init];
if (cls != nil)
{
NSDateFormatter *dateFormat = [[[NSDateFormatter alloc]init]autorelease];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate *notificationDate = [dateFormat dateFromString:textField2.text];
reminderNotification.fireDate = notificationDate;
reminderNotification.timeZone = [NSTimeZone defaultTimeZone];
NSString *reminderText = [NSString stringWithFormat:@"%@ 's %@ on %@",textField.text,textField1.text,strDate];
reminderNotification.alertBody = reminderText;
reminderNotification.alertAction = @"View";
reminderNotification.soundName = @"lazy_afternoon.mp3";
reminderNotification.applicationIconBadgeNumber = 1;
NSDictionary *userDict = [NSDictionary …
Run Code Online (Sandbox Code Playgroud) 我有一个非常奇怪的问题,我不知道它是否对细胞的正常行为很尴尬,似乎就是这样!因此我将它放弃给一个可以回答的人,如果有任何愚蠢的事情道歉在问这个问题时.通常情况下,当我们触摸一个表格视图单元格时,它会导航到一个视图控制器/一个被编码的控制器.现在这里有什么奇怪的是它没有响应选择或触摸.我检查了是否允许在IB中选择编辑时进行选择.我选择了它,现在这里的扭曲是当我触摸表格视图单元格没有响应时,而是当我水平滑动/当我长按单元格时,它正在导航,真的对这种奇怪的行为感到惊讶!我不明白为什么我需要刷它以在表视图工作中选择单元格.这也发生在表视图下面的按钮!
我已经搜索了与我的情况类似的问题,但我发现只有一个问题,建议检查这个方法,
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)
但我根本没有实现该方法,我实际上是一个带有几个项目的标签栏,其中我有一个名为AddController的控制器,用于访问控制器中声明的几个属性和字符串等.我将其子类化为如下:
@interface ViewController : AddController
Run Code Online (Sandbox Code Playgroud)
现在因为它在我看到的问题中指定,即我给出的链接,检查你是否在子类控制器页面中复制相同的代码,我谈到了子类化和我做了什么,希望每个人都理解它!
任何人都可以指导我如何摆脱这个问题,并使表视图单元格响应正常触摸,任何帮助非常感谢!
在此先感谢所有:)
我知道这个问题是很多人提出的,并且有几个关于"为什么要使用sqlite,使用FMDB,核心数据"等的讨论和论据来存储或插入数据库中的图像.但请理解我的问题,我非常很多用于sqlite3,我无法使用核心数据或其他一些db.Also我只是在学习iphone技术的阶段.所以我请求提供一个解决方案,只能处理sqlite;)
如果我的请求有任何错误,请道歉!
我有一个文本字段,当输入一个字母时会显示表格,即来自联系人,如果我输入字母"L","Lakshaman Rao,Prasanna Lakshmi","Lokesh Sharan"等等.
现在我想从相应的联系人那里获取相应的联系人图片.所以我搜索了如何检索联系人图像的代码示例,并实现了以下方式:
NSData *imgData = nil;
imgData = (NSData *)ABPersonCopyImageData(ref);
contactImage = [UIImage imageWithData:imgData];
Run Code Online (Sandbox Code Playgroud)
现在我在这里和那里搜索了类似的问题,常见的答案是将图像保存在应用程序的文档目录中,并在数据库中仅保存图像的路径.
因为在db中插入blob会使我们的db非常慢:(
但是我该怎么做.我无法理解我正确经历的链接中的代码片段,如何将UIImage类型的contactImage转换为NSString,以便我可以将字符串插入到数据库表中记录为VARCHAR类型!
编辑
这是在那里建议的代码:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
Run Code Online (Sandbox Code Playgroud)
这是我实现的代码:
ABAddressBookRef addressBook = ABAddressBookCreate( );
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook );
CFIndex nPeople = ABAddressBookGetPersonCount( addressBook );
NSString *contactFirstName = nil;
NSString *contactLastName = nil;
NSString *fullName = nil;
for …
Run Code Online (Sandbox Code Playgroud) 关于为什么本地通知在这里和那里没有正确启动的问题有很多问题,当应用程序处于后台状态时,还有几个问题解释为什么本地通知没有触发,我也经历了这些问题.
但令我惊讶的是,我没有找到任何与前景状态或活动状态相关的通知帖子,即在我的应用程序中我面临这个奇怪的问题,即当应用程序进入后台模式时本地通知会触发,并且当应用程序进入后台模式时它不会触发应用程序处于活动状态或前台模式,令我惊讶的是,即使在通知设置的开启日期到期后,进入后台后,通知也会立即触发.
编辑
我面临的另一个问题是警报没有触发,即我们在didReceive本地通知方法中编写的警报操作,这里是实现代码:
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
application.applicationIconBadgeNumber = 0;
NSString *reminderText = [notification.userInfo objectForKey:addViewController.textField.text];
[self.addViewController showReminder:reminderText];
}
Run Code Online (Sandbox Code Playgroud)
这是showReminder方法,它存在于另一个控制器中,即:
//Notification alert
- (void)showReminder:(NSString *)text
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Reminder" message:text delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(220, 10, 40, 40)];
UIImage *image= [UIImage imageNamed:@"icon@2x.png"];
[imageView setImage:image];
[alertView addSubview:imageView];
[imageView release];
[alertView show];
[alertView release];
}
Run Code Online (Sandbox Code Playgroud)
很抱歉,如果此问题不需要在stackoverflow中提问或发帖.
任何人请发表您的建议,任何帮助很高兴!
在此先感谢所有:)