///Here is method to add multiple month into scroll view as like iPad Reminder application
//Replace your scroll view name
-(NSDate *)getCurrentDate{
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setCalendar:calendar];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
return [NSDate dateWithTimeInterval:0 sinceDate:[dateFormatter dateFromString:[dateFormat stringFromDate:[NSDate date]]]];
}
-(void)addCalander
{
NSDate *yourDate=[self getCurrentDate];
float s=7000;
float h=0;
float heightSC=0;
for(int m=0;m<=11;m++)
{
TKCalendarMonthView *calendar1=[[TKCalendarMonthView alloc] init];
calendar1.delegate = self;
calendar1.dataSource = self;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *todayComponents = [gregorian components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:yourDate];
NSInteger theDay = [todayComponents day];
NSInteger theMonth = [todayComponents month];
NSInteger theYear = [todayComponents year];
// now build a NSDate object for yourDate using these components
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:theDay];
[components setMonth:theMonth];
[components setYear:theYear];
NSDate *thisDate = [gregorian dateFromComponents:components];
h=calendar1.frame.size.height+2;
// now build a NSDate object for the next day
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setMonth:-1];
NSDate *nextDate = [gregorian dateByAddingComponents:offsetComponents toDate:thisDate options:0];
[calendar1 selectDate:nextDate];
s=s-calendar1.frame.size.height+2;
yourDate=nextDate;
heightSC=heightSC+calendar1.frame.size.height+2;
}
yourDate=[self getCurrentDate];
s=heightSC;
for(int m=11;m>=0;m--)
{
TKCalendarMonthView *calendar1=[[TKCalendarMonthView alloc] init];
calendar1.delegate = self;
calendar1.dataSource = self;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *todayComponents = [gregorian components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:yourDate];
NSInteger theDay = [todayComponents day];
NSInteger theMonth = [todayComponents month];
NSInteger theYear = [todayComponents year];
// now build a NSDate object for yourDate using these components
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:theDay];
[components setMonth:theMonth];
[components setYear:theYear];
NSDate *thisDate = [gregorian dateFromComponents:components];
h=calendar1.frame.size.height;
// now build a NSDate object for the next day
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setMonth:-1];
NSDate *nextDate = [gregorian dateByAddingComponents:offsetComponents toDate:thisDate options:0];
[calendar1 selectDate:nextDate];
s=s-calendar1.frame.size.height;
UIView *view_c=[[UIView alloc]initWithFrame:CGRectMake(0, s, 224, calendar1.frame.size.height)];
[self.view addSubview:scroll];
[view_c addSubview:calendar1];
[scroll addSubview:view_c];
yourDate=nextDate;
}
//NSLog(@"s out is %f",s);
yourDate=[self getCurrentDate];
s=heightSC;
for(int m=11;m<35;m++)
{
TKCalendarMonthView *calendar1=[[TKCalendarMonthView alloc] init];
calendar1.delegate = self;
calendar1.dataSource = self;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *todayComponents = [gregorian components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:yourDate];
NSInteger theDay = [todayComponents day];
NSInteger theMonth = [todayComponents month];
NSInteger theYear = [todayComponents year];
int fla=1;
if(theDay==1){
fla=0;
}
// now build a NSDate object for yourDate using these components
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:theDay];
[components setMonth:theMonth];
[components setYear:theYear];
NSDate *thisDate = [gregorian dateFromComponents:components];
// now build a NSDate object for the next day
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
if(fla==0)
{
[offsetComponents setDay:32];
}
else
{
[offsetComponents setMonth:1];
}
NSDate *nextDate = [gregorian dateByAddingComponents:offsetComponents toDate:thisDate options:0];
if(m==11)
{
nextDate=yourDate;
calendarScrollingPosition = s;
}
[calendar1 selectDate:nextDate];
UIView *view_c=[[UIView alloc]initWithFrame:CGRectMake(0, s, 224, calendar1.frame.size.height)];
s=s+calendar1.frame.size.height+2;
[self.view addSubview:view_c];
[scroll addSubview:view_c];
[view_c addSubview:calendar1];
yourDate=nextDate;
}
scroll.contentSize=CGSizeMake(150, s);
[scroll setShowsHorizontalScrollIndicator:NO];
[scroll setShowsVerticalScrollIndicator:NO];
[scroll setContentOffset:CGPointMake(0, calendarScrollingPosition) animated:NO];
}
hi guys,Here is code tip that use while develop any ios application .And that may usefuly you too.
Wednesday, 9 January 2013
Monday, 7 January 2013
Audio - Play Sound File
//Code to play audio from resource
NSString *path = [NSString stringWithFormat:@"%@%@", [[NSBundle mainBundle] resourcePath], @"/test.wav"];//Replace with your sound file which is in resource file
SystemSoundID soundID;
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
AudioServicesPlaySystemSound(soundID);
NSString *path = [NSString stringWithFormat:@"%@%@", [[NSBundle mainBundle] resourcePath], @"/test.wav"];//Replace with your sound file which is in resource file
SystemSoundID soundID;
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
AudioServicesPlaySystemSound(soundID);
Database - Select particular row with where condition
//TableName - Name of table
//withColumn - Array of column name to select
//withCondition - column name on which you want to make condition
//ComumnValue - what pass in that column
//Here is method for same
- (NSMutableArray *)columeFromDatabase:(NSString *)TableName withColumn:(NSArray *)arrColumnName withCondition:(NSString *)ColumnNameCondition withColumnValue:(NSString *)ColumnValue
{
NSMutableArray *resultArray = [[NSMutableArray alloc] initWithCapacity:0];
NSString *strComma=@",";
NSMutableString *query=[[[NSMutableString alloc]init] autorelease];
NSMutableString *strtemp=[[[NSMutableString alloc]init] autorelease];
[query appendString:@"SELECT "];
for(int i=0;i<[arrColumnName count];i++)
{
[query appendString:[arrColumnName objectAtIndex:i]];
[query appendString:strComma];
}
NSString *strQueryStar=[NSString stringWithFormat:@"%@",query];
strQueryStar = [strQueryStar substringToIndex:[strQueryStar length] - 1];
[strtemp appendString:strQueryStar];
[strtemp appendString:@" FROM "];
[strtemp appendString:TableName];
[strtemp appendString:@" WHERE "];
[strtemp appendString:ColumnNameCondition];
[strtemp appendString:ColumnValue];
const char *sql = [strtemp UTF8String];
sqlite3_stmt *selectStatement;
//prepare the select statement
int returnValue = sqlite3_prepare_v2(database, sql, -1, &selectStatement, NULL);
if(returnValue == SQLITE_OK)
{
sqlite3_bind_text(selectStatement, 1, sql, -1, SQLITE_TRANSIENT);
//loop all the rows returned by the query.
NSMutableArray *arrColumns = [[NSMutableArray alloc] initWithCapacity:0];
for (int i=0; i<sqlite3_column_count(selectStatement); i++)
{
const char *st = sqlite3_column_name(selectStatement, i);
[arrColumns addObject:[NSString stringWithCString:st encoding:NSUTF8StringEncoding]];
}
int intRow =1;
while(sqlite3_step(selectStatement) == SQLITE_ROW)
{
NSMutableDictionary *dctRow = [[NSMutableDictionary alloc] initWithCapacity:0];
for (int i=0; i<sqlite3_column_count(selectStatement); i++)
{
int intValue = 0;
double dblValue =0;
const char *strValue;
switch (sqlite3_column_type(selectStatement,i))
{
case SQLITE_INTEGER:
intValue = (int)sqlite3_column_int(selectStatement, i);
[dctRow setObject:[NSNumber numberWithInt:intValue] forKey:[arrColumns objectAtIndex:i]];
break;
case SQLITE_FLOAT:
dblValue = (double)sqlite3_column_double(selectStatement, i);
[dctRow setObject:[NSNumber numberWithDouble:dblValue] forKey:[arrColumns objectAtIndex:i]];
break;
case SQLITE_TEXT:
strValue = (const char *)sqlite3_column_text(selectStatement, i);
[dctRow setObject:[NSString stringWithCString:strValue encoding:NSUTF8StringEncoding] forKey:[arrColumns objectAtIndex:i]];
break;
case SQLITE_BLOB:
strValue = (const char *)sqlite3_column_value(selectStatement, i);
[dctRow setObject:[NSString stringWithCString:strValue encoding:NSUTF8StringEncoding] forKey:[arrColumns objectAtIndex:i]];
break;
case SQLITE_NULL:
[dctRow setObject:@"" forKey:[arrColumns objectAtIndex:i]];
break;
default:
strValue = (const char *)sqlite3_column_value(selectStatement, i);
[dctRow setObject:[NSString stringWithCString:strValue encoding:NSUTF8StringEncoding] forKey:[arrColumns objectAtIndex:i]];
break;
}
}
[resultArray addObject:dctRow];
[dctRow release];
intRow ++;
}
[arrColumns release];
}
sqlite3_reset(selectStatement);
return [resultArray autorelease];
}
//withColumn - Array of column name to select
//withCondition - column name on which you want to make condition
//ComumnValue - what pass in that column
//Here is method for same
- (NSMutableArray *)columeFromDatabase:(NSString *)TableName withColumn:(NSArray *)arrColumnName withCondition:(NSString *)ColumnNameCondition withColumnValue:(NSString *)ColumnValue
{
NSMutableArray *resultArray = [[NSMutableArray alloc] initWithCapacity:0];
NSString *strComma=@",";
NSMutableString *query=[[[NSMutableString alloc]init] autorelease];
NSMutableString *strtemp=[[[NSMutableString alloc]init] autorelease];
[query appendString:@"SELECT "];
for(int i=0;i<[arrColumnName count];i++)
{
[query appendString:[arrColumnName objectAtIndex:i]];
[query appendString:strComma];
}
NSString *strQueryStar=[NSString stringWithFormat:@"%@",query];
strQueryStar = [strQueryStar substringToIndex:[strQueryStar length] - 1];
[strtemp appendString:strQueryStar];
[strtemp appendString:@" FROM "];
[strtemp appendString:TableName];
[strtemp appendString:@" WHERE "];
[strtemp appendString:ColumnNameCondition];
[strtemp appendString:ColumnValue];
const char *sql = [strtemp UTF8String];
sqlite3_stmt *selectStatement;
//prepare the select statement
int returnValue = sqlite3_prepare_v2(database, sql, -1, &selectStatement, NULL);
if(returnValue == SQLITE_OK)
{
sqlite3_bind_text(selectStatement, 1, sql, -1, SQLITE_TRANSIENT);
//loop all the rows returned by the query.
NSMutableArray *arrColumns = [[NSMutableArray alloc] initWithCapacity:0];
for (int i=0; i<sqlite3_column_count(selectStatement); i++)
{
const char *st = sqlite3_column_name(selectStatement, i);
[arrColumns addObject:[NSString stringWithCString:st encoding:NSUTF8StringEncoding]];
}
int intRow =1;
while(sqlite3_step(selectStatement) == SQLITE_ROW)
{
NSMutableDictionary *dctRow = [[NSMutableDictionary alloc] initWithCapacity:0];
for (int i=0; i<sqlite3_column_count(selectStatement); i++)
{
int intValue = 0;
double dblValue =0;
const char *strValue;
switch (sqlite3_column_type(selectStatement,i))
{
case SQLITE_INTEGER:
intValue = (int)sqlite3_column_int(selectStatement, i);
[dctRow setObject:[NSNumber numberWithInt:intValue] forKey:[arrColumns objectAtIndex:i]];
break;
case SQLITE_FLOAT:
dblValue = (double)sqlite3_column_double(selectStatement, i);
[dctRow setObject:[NSNumber numberWithDouble:dblValue] forKey:[arrColumns objectAtIndex:i]];
break;
case SQLITE_TEXT:
strValue = (const char *)sqlite3_column_text(selectStatement, i);
[dctRow setObject:[NSString stringWithCString:strValue encoding:NSUTF8StringEncoding] forKey:[arrColumns objectAtIndex:i]];
break;
case SQLITE_BLOB:
strValue = (const char *)sqlite3_column_value(selectStatement, i);
[dctRow setObject:[NSString stringWithCString:strValue encoding:NSUTF8StringEncoding] forKey:[arrColumns objectAtIndex:i]];
break;
case SQLITE_NULL:
[dctRow setObject:@"" forKey:[arrColumns objectAtIndex:i]];
break;
default:
strValue = (const char *)sqlite3_column_value(selectStatement, i);
[dctRow setObject:[NSString stringWithCString:strValue encoding:NSUTF8StringEncoding] forKey:[arrColumns objectAtIndex:i]];
break;
}
}
[resultArray addObject:dctRow];
[dctRow release];
intRow ++;
}
[arrColumns release];
}
sqlite3_reset(selectStatement);
return [resultArray autorelease];
}
UITableView - Reload table view with smooth animation
//Put this code where you want to reload your table view
dispatch_async(dispatch_get_main_queue(), ^{
[UIView transitionWithView:<"TableName">
duration:0.1f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^(void) {
[<"TableName"> reloadData];
} completion:NULL];
});
dispatch_async(dispatch_get_main_queue(), ^{
[UIView transitionWithView:<"TableName">
duration:0.1f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^(void) {
[<"TableName"> reloadData];
} completion:NULL];
});
Sunday, 6 January 2013
UIImage - Merge two image
///Mearge two image in one image
-(UIImage *)imageWithImage:(UIImage *)image
borderImage:(UIImage *)borderImage
covertToSize:(CGSize)size
{
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake( 10, 0, 60, 53 )];
[borderImage drawInRect:CGRectMake( 0, 0, 70, 70)];
UIImage *destImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return destImage;
}
///How To Use
ImageView.image=[self imageWithImage:Image1 borderImage:Image2 covertToSize:CGSizeMake(70, 70)];
-(UIImage *)imageWithImage:(UIImage *)image
borderImage:(UIImage *)borderImage
covertToSize:(CGSize)size
{
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake( 10, 0, 60, 53 )];
[borderImage drawInRect:CGRectMake( 0, 0, 70, 70)];
UIImage *destImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return destImage;
}
///How To Use
ImageView.image=[self imageWithImage:Image1 borderImage:Image2 covertToSize:CGSizeMake(70, 70)];
MKMap - Add tap gesture on map pin and handle it
Here is code to handle tap gesture on map view and display data related to that when click on pin its directly display its related data.
///Add protocol for UIGestureRecognizerDelegate
///Add on each pin in viewForAnnotation
UITapGestureRecognizer *pinTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(pinTapped:)];
pinTap.numberOfTapsRequired=1;
[yourPinView addGestureRecognizer:pinTap];
///Gesture Handle method
- (void)pinTapped:(UIGestureRecognizer *)gestureRecognizer
{
NSLog(@"%i",[gestureRecognizer view].tag);
NSLog(@"Write your code");
}
///Add protocol for UIGestureRecognizerDelegate
///Add on each pin in viewForAnnotation
UITapGestureRecognizer *pinTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(pinTapped:)];
pinTap.numberOfTapsRequired=1;
[yourPinView addGestureRecognizer:pinTap];
///Gesture Handle method
- (void)pinTapped:(UIGestureRecognizer *)gestureRecognizer
{
NSLog(@"%i",[gestureRecognizer view].tag);
NSLog(@"Write your code");
}
Thursday, 3 January 2013
Keyboard - Add Done Button in Number Pad
//In this code you can add done button on you number key pad you need to handle its hide/show using boolean variable as per your requirement.
.h
==
UIButton * doneButton;
BOOL phoneTagOrNot;
.m
===
- (void)addButtonToKeyboard {
// create custom button
doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(0, 163, 106, 53);
doneButton.adjustsImageWhenHighlighted = NO;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.0) {
[doneButton setImage:[UIImage imageNamed:@"DoneUp3.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"DoneDown3.png"] forState:UIControlStateHighlighted];
} else {
[doneButton setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
[doneButton setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
}
[doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
// locate keyboard view
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView* keyboard;
for(int i=0; i<[tempWindow.subviews count]; i++) {
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard found, add the button
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2) {
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES)
[keyboard addSubview:doneButton];
} else {
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES)
[keyboard addSubview:doneButton];
}
if (phoneTagOrNot == TRUE)
doneButton.hidden = TRUE;
else
doneButton.hidden = FALSE;
}
}
Tuesday, 1 January 2013
UITextField - Space in image textbox
@implementation UITextField (custom)
//In this you can set your own space for it
- (CGRect)textRectForBounds:(CGRect)bounds{
return CGRectMake(bounds.origin.x
+20, bounds.origin.y ,
bounds.size.width - 40, bounds.size.height);
}
- (CGRect)editingRectForBounds:(CGRect)bounds{
return [self textRectForBounds:bounds];
}
@end
//In this you can set your own space for it
- (CGRect)textRectForBounds:(CGRect)bounds{
return CGRectMake(bounds.origin.x
+20, bounds.origin.y ,
bounds.size.width - 40, bounds.size.height);
}
- (CGRect)editingRectForBounds:(CGRect)bounds{
return [self textRectForBounds:bounds];
}
@end
Subscribe to:
Posts (Atom)