Eventhough I am resizing image, but still I am not getting my image on the twitter sheet.
- (void)twitterButtonPressed {
NSString *post=[[NSString alloc]initWithFormat:@"I've burned so far %d Calories today - update from iPhone app Run Burn Calories!", self.userActivityTotalCount];
NSURL *url=[NSURL URLWithString:@"www.cpl.uh.edu"];
UIImage *iconImage=[UIImage imageNamed:@"male_small_0.png"];
UIImage *iconImage2=[self imageWithImage:iconImage scaledToSize:CGSizeMake(73.0, 73.0)];
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
SLComposeViewController *twitterSheet=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[twitterSheet setInitialText:post];
[twitterSheet addURL:url];
[twitterSheet addImage:iconImage2];
[self presentViewController:twitterSheet animated:YES completion:nil];
SLComposeViewControllerCompletionHandler completion=^(SLComposeViewControllerResult result){
switch (result) {
case SLComposeViewControllerResultDone:
NSLog(@"posted successfully!");
break;
case SLComposeViewControllerResultCancelled:
NSLog(@" could not posted!");
break;
default:
break;
}
[twitterSheet dismissViewControllerAnimated:YES completion:nil];
};
twitterSheet.completionHandler=completion;
}
else{
UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"Sorry" message:@"You can't send a tweet right now, make sure your device has an internet connection and you have at least one Twitter account set up" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
}
-(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
It looks like your tweet is too long for two links to be added (images are added as links when shared via Twitter).
Theoretically, a URL should only consume 20 characters in a tweet (+ spaces) because should be shortened automatically, but it seems that the iOS tweet sheet doesn't work that way. Through some experimentation I've found that you can have at most 71 characters in the tweet when you want to add both an image and a URL.