How to add smiley on my alert view? [duplicate] - iphone

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Image in UIAlertView
I am implementing a puzzle game. after player won I'm showing an alert that You won. but with that I want to add smiley on my alert view. How to do that?

use this
UIAlertView *successAlert = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:#"OK" otherButtonTitles:nil];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(220, 10, 40, 40)];
NSString *path = [[NSString alloc] initWithString:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:#"smile.png"]];
UIImage *bkgImg = [[UIImage alloc] initWithContentsOfFile:path];
[imageView setImage:bkgImg];
[bkgImg release];
[path release];
[successAlert addSubview:imageView];
[imageView release];
[successAlert show];
[successAlert release];
copied form here

Related

Changing width and height of Alert Message i-Phone

Was wondering what the correct way would be to initialise my alert popup with a smaller window
-(void)alertMessage1:(NSString*) title:(NSString*) message1 {
UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:#"Successfully uploaded!" message:message1 delegate:self cancelButtonTitle:#"Okay" otherButtonTitles:nil];
}
You can create a UIAlertview as you suggested like this
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:#"Title Here" message:#"Message here" delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
[alert setDelegate:self];
[alert show];
[alert release];
and if you want to adjust the frame them use
- (void)willPresentAlertView:(UIAlertView *)alertView {
alertView.frame = CGRectMake(20.f, 200.f, 280.f, 93.f);
NSArray *subViewArray = alertView.subviews;
for(int x=0;x<[subViewArray count];x++){
if([[[subViewArray objectAtIndex:x] class] isSubclassOfClass:[UILabel class]])
{
UILabel *label = [subViewArray objectAtIndex:x];
label.textAlignment = UITextAlignmentLeft;
}
}
}
In this alertView.frame = CGRectMake(20.f, 200.f, 280.f, 93.f); the CGRectMake(X-position, Y-Position, width, Height). Change it and your work will be done.
You should create custom AlertView or use one of these :
https://www.cocoacontrols.com/search?utf8=%E2%9C%93&q=alertview
For the question you raised in comment changing the background color of UIAlertview you can add the background image like this directly. I am not sure if you can add the color or not.
UIAlertView *theAlert = [[[UIAlertView alloc] initWithTitle:#"Atention" message: #"YOUR MESSAGE HERE", nil) delegate:nil cancelButtonTitle:#"OK" otherButtonTitles:nil] autorelease];
[theAlert show];
UILabel *theTitle = [theAlert valueForKey:#"_titleLabel"];
[theTitle setTextColor:[UIColor redColor]];
UILabel *theBody = [theAlert valueForKey:#"_bodyTextLabel"];
[theBody setTextColor:[UIColor blueColor]];
UIImage *theImage = [UIImage imageNamed:#"Background.png"];
theImage = [theImage stretchableImageWithLeftCapWidth:16 topCapHeight:16];
CGSize theSize = [theAlert frame].size;
UIGraphicsBeginImageContext(theSize);
[theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)];
theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[theAlert layer] setContents:[theImage CGImage]];

How to prompt user for text input in Alert view

I am writing a section of code where it would be best if I could use a pop up box something like UIAlertView and prompt the user to enter text like a password.
Any pointers on an elegant way of doing this?
Things are much simpler in iOS 5, just set the alertViewStyle property to the appropriate style (UIAlertViewStyleSecureTextInput, UIAlertViewStylePlainTextInput, or UIAlertViewStyleLoginAndPasswordInput). Example:
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:#"Password" message:#"Enter your password:" delegate:self cancelButtonTitle:#"Cancel" otherButtonTitles:#"Ok", nil];
alertView.alertViewStyle = UIAlertViewStyleSecureTextInput;
UITextField *passwordTextField = [alertView textFieldAtIndex:0];
[alertView show];
> Simple You can apply like this
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:#"Filename" message:#"Enter the file name:" delegate:self cancelButtonTitle:#"Cancel" otherButtonTitles:#"Ok", nil];
alertView.alertViewStyle = UIAlertViewStylePlainTextInput;
UITextField *passwordTextField = [alertView textFieldAtIndex:0];
[alertView show]
The best way that I've found to do this is to follow this tutorial: http://junecloud.com/journal/code/displaying-a-password-or-text-entry-prompt-on-the-iphone.html
The code used to achieve this is (taken directly from that great tutorial):
UIAlertView *passwordAlert = [[UIAlertView alloc] initWithTitle:#"Server Password" message:#"\n\n\n"
delegate:self cancelButtonTitle:NSLocalizedString(#"Cancel",nil) otherButtonTitles:NSLocalizedString(#"OK",nil), nil];
UILabel *passwordLabel = [[UILabel alloc] initWithFrame:CGRectMake(12,40,260,25)];
passwordLabel.font = [UIFont systemFontOfSize:16];
passwordLabel.textColor = [UIColor whiteColor];
passwordLabel.backgroundColor = [UIColor clearColor];
passwordLabel.shadowColor = [UIColor blackColor];
passwordLabel.shadowOffset = CGSizeMake(0,-1);
passwordLabel.textAlignment = UITextAlignmentCenter;
passwordLabel.text = #"Account Name";
[passwordAlert addSubview:passwordLabel];
UIImageView *passwordImage = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:#"passwordfield" ofType:#"png"]]];
passwordImage.frame = CGRectMake(11,79,262,31);
[passwordAlert addSubview:passwordImage];
UITextField *passwordField = [[UITextField alloc] initWithFrame:CGRectMake(16,83,252,25)];
passwordField.font = [UIFont systemFontOfSize:18];
passwordField.backgroundColor = [UIColor whiteColor];
passwordField.secureTextEntry = YES;
passwordField.keyboardAppearance = UIKeyboardAppearanceAlert;
passwordField.delegate = self;
[passwordField becomeFirstResponder];
[passwordAlert addSubview:passwordField];
[passwordAlert setTransform:CGAffineTransformMakeTranslation(0,109)];
[passwordAlert show];
[passwordAlert release];
[passwordField release];
[passwordImage release];
[passwordLabel release];
If my app was not to be released for yet a months or two, then I would login to http://developer.apple.com, look at the iOS 5 beta area, and see if UIAlertView might have something in store for us.
I think it would be helpful to know that UIAlertView is not modal so the alert will not block.
I ran into this problem where I wanted to prompt the user for input then continue and then use that input in the code after. But instead the code after the [alert show] would run first until you reached the end of the run loop then the alert would display.
Optimized code:
UIAlertView *passwordAlert = [[UIAlertView alloc] initWithTitle:#"Password"
message:#"Please enter the password:\n\n\n"
delegate:self
cancelButtonTitle:NSLocalizedString(#"Cancel",nil)
otherButtonTitles:NSLocalizedString(#"OK",nil), nil];
UITextField *passwordField = [[UITextField alloc] initWithFrame:CGRectMake(16,83,252,25)];
passwordField.borderStyle = UITextBorderStyleRoundedRect;
passwordField.secureTextEntry = YES;
passwordField.keyboardAppearance = UIKeyboardAppearanceAlert;
passwordField.delegate = self;
[passwordField becomeFirstResponder];
[passwordAlert addSubview:passwordField];
[passwordAlert show];
[passwordAlert release];
[passwordField release];

How to put an UIWebView inside UIAlertView?

I've tried to add a WebView to the AlertView using this code:
- (void)viewDidLoad {
search = [[UIAlertView alloc] initWithTitle:#"title" message:#"iGoogle" delegate:nil cancelButtonTitle:#"Cancel" otherButtonTitles:#"Search", nil];
[search addSubview:googleView];
googleView = [[UIWebView alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
[search show];
[search release];
[super viewDidLoad]; }
Still, only the AlertView shows up, without the WebView. And also, where can I get more details on adding stuff like CGRectMakes?
try to add [search addSubview:googleView]; after the googlview is allocated...
Did you try to interchange addSubview:googleView call string with googleView = string?
Here's a link to something I used a while back to add a subview to a UIAlertView. The "trick" is adding a message param that makes the alert view increase in height, then you place a subview on top of that. I've never tried it with a web view.
http://www.iphonedevsdk.com/forum/iphone-sdk-development/1704-uitextfield-inside-uialertview.html
Also make your you init your webview with a url and implement delegate as necessary.
Try this
- (void)viewDidLoad
{
googleView = [[UIWebView alloc] initWithFrame:CGRectMake(12.0, 45.0, 260.0, 25.0)];
search = [[UIAlertView alloc] initWithTitle:#"title" message:#"iGoogle" delegate:nil cancelButtonTitle:#"Cancel" otherButtonTitles:#"Search", nil];
[search addSubview:googleView];
[search show];
[search release];
[super viewDidLoad];
}
Initialize the memory for the webview first and then add it inside the alert view.
UIAlertView is deprecated in iOS 8.
To get the same thing implemented use UIAlertController.
NSURL *url = [[NSBundle mainBundle] URLForResource:#"page" withExtension:#"html"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
UIAlertController *alert = [UIAlertController alertControllerWithTitle:#"HTML" message:nil preferredStyle:UIAlertControllerStyleAlert];
webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 60, 60)];
webView.backgroundColor = [UIColor clearColor];
[alert.view addSubview:webView];
[self presentViewController:alert animated:YES completion:nil];

“EXC_BAD_ACCESS" signal received

i am beginner in iphone programming i am doing an app of photo gallery in which while scrolling the UITableView i am getting this exception in my device as Program received signal: “EXC_BAD_ACCESS”
can anyone pls help me tackle this problem...
enter cod[super viewDidLoad];
self.title=#"Back";
udf=[NSUserDefaults standardUserDefaults];
id_arr=[[NSMutableArray alloc]init];
descrip_arr=[[NSMutableArray alloc]init];
path_arr=[[NSMutableArray alloc]init];
count_arr=[[NSMutableArray alloc]init];
client = [[[ClientController alloc] init] autorelease];
r_m = [[[RequestMessage alloc]init] autorelease];
m_j = [[[Main_Json alloc]init] autorelease];
[r_m setServiceType:#"IMAGE"];
[r_m setParameter:#"sample string"];
NSString * json_string = [m_j returnJsonString:r_m:#"button"];
json_string=[json_string stringByAppendingFormat: #"\n"];
NSLog(#"Client is sending:%#", json_string);
//NSLog(json_string);
client.connect;
NSLog(#"client connecting........");
if([client isConnected])
{
NSString *flag = [client send:json_string];
if(![flag isEqualToString:#"success"])
{
NSLog(#"Before Alert_view");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:flag delegate:nil cancelButtonTitle:#"OK" otherButtonTitles:nil];
[alert show];
[alert release];
return;
}
NSString *Var=[client receiveResponse];
//NSLog(#"TEST:%#",Var);
NSString *main_str=[Var stringByReplacingOccurrencesOfString:#"!#{}&" withString:#""];
//main_str=[Var stringByReplacingOccurrencesOfString:#"{\"serviceType\":\"ALLIMAGE\",\"parameters\":[[]]}" withString:#""];
NSLog(#"Split:%#",main_str);
js=[[JsontoObject alloc]sivajiTV_response:main_str];
e1=[[Event alloc]init];
NSLog(#"TEST1:%#",[udf objectForKey:#"id_value"]);
NSLog(#"TEST2:%#",[udf objectForKey:#"des_value"]);
NSLog(#"TEST3:%#",[udf objectForKey:#"path_value"]);
NSLog(#"TEST4:%#",[udf objectForKey:#"count_value"]);
id_arr=[[udf objectForKey:#"id_value"] componentsSeparatedByString:#","];
NSArray *descrip_arr1 =[[udf objectForKey:#"des_value"] componentsSeparatedByString:#","];
NSArray *path_arr1=[[udf objectForKey:#"path_value"] componentsSeparatedByString:#","];
count_arr=[[udf objectForKey:#"count_value"] componentsSeparatedByString:#","];
//NSLog(#"-------------");
//NSLog(#"STRING_ID2:%#",descrip_arr1);
//NSLog(#"STRING_ID3:%#",path_arr1);
//NSLog(#"-------------");
for (int i=0; i<[descrip_arr1 count]; i++) {
NSString *temp=[NSString stringWithFormat:#"%#",[descrip_arr1 objectAtIndex:i]];
//NSLog(#"STRING_test:%#",temp);
temp=[temp stringByReplacingOccurrencesOfString:#"\"" withString:#""];
//NSLog(#"STRING_test1:%#",temp);
[descrip_arr addObject:temp];
NSString *temp1=[NSString stringWithFormat:#"%#",[path_arr1 objectAtIndex:i]];
temp1=[temp1 stringByReplacingOccurrencesOfString:#"\"" withString:#""];
[path_arr addObject:temp1];
}
NSLog(#"------------------------------------------------------------------------------");
NSLog(#"STRING_ID1:%#",id_arr);
NSLog(#"STRING_ID2:%#",descrip_arr);
NSLog(#"STRING_ID3:%#",path_arr);
NSLog(#"STRING_ID4:%#",count_arr);
NSLog(#"------------------------------------------------------------------------------");
if([main_str isEqualToString: [NSNull null]])
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:main_str delegate:nil cancelButtonTitle:#"OK" otherButtonTitles:nil];
[alert show];
[alert release];
return;
}
}
else
{
UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:nil message:#"Connection not Found" delegate:nil cancelButtonTitle:#"OK" otherButtonTitles:nil];
[alert1 show];
[alert1 release];
}
UILabel *lblTitle=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 40)];
lblTitle.backgroundColor=[UIColor clearColor];
self.navigationItem.titleView=lblTitle;
toolbar=[[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 25)];
toolbar.barStyle=UIBarStyleBlackOpaque;
[self.view addSubview:toolbar];
UILabel *mylabel = [[UILabel alloc] initWithFrame:CGRectMake(250, 2, 60, 20)];
mylabel.backgroundColor=[UIColor clearColor];
mylabel.textColor = [UIColor whiteColor];
mylabel.text = #"Gallery";
[toolbar addSubview:mylabel];
myTableView.frame=CGRectMake(0,26, 320,430);
// myTableView.backgroundView=nil;
[self.view addSubview:myTableView];
//self.myTableView.separatorColor = [UIColor clearColor];
//UITableViewController *myTableViewController = [[UITableViewController alloc] initWithTableStyle:UITableViewStyleGrouped];
// UIToolBar *myToolBar = [[UIToolBar alloc]initWithFrame:CGRectMake(0, 15, 320, 10)];
// CGRect *toolBarFrame;
// toolBarFrame = CGMakeRect (0, 440, 320, 40);
// [toolBarFrame setFrame:toolBarFrame];
// [myTableViewController.view addSubView:toolBarFrame];
//viewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:#"movies.jpg"]];
//myTableView.rowHeight=120;
[self.view addSubview:myTableView];
//tempArray = [[NSArray alloc] initWithObjects:#"Sports",#"News",#"naturals1",#"live",nil];
//titleArray = [[NSArray alloc] initWithObjects:#"SA spinners made the difference: Sammy",#"Cabinet terminates ISRO’s deal",#"Hudson River Fish Evolve Toxic ",#"Hi Today Special News?",nil];
//SBJSON *json = [SBJSON new];
// json.humanReadable = YES;
//self.tableDataList = tempArray;
//self.myTableView.backgroundColor = [UIColor clearColor];
//create new uiview with a background image
//UIImage *backgroundImage = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:#"movies" ofType:#"jpg"]];
//UIImageView *backgroundView = [[UIImageView alloc] initWithImage:backgroundImage];
//adjust the frame for the case of navigation or tabbars
//backgroundView.frame = CGRectMake(0, 0, 320, 460);
//add background view and send it to the back
//[self.viewController.view addSubview:backgroundView];
//[self.viewController.view sendSubviewToBack:backgroundView];
//[backgroundView release];
//UIImage *img1= [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:#"http://122.183.217.134:8080/sivajitv/photos/20101216001017.jpg"]]];
//NSLog(#"ERROR1:%#",img1);
//NSData *imageData = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:#"http://122.183.217.134:8080/sivajitv/photos/20101216001017.jpg"]];
//NSLog(#"ERROR12:%#",imageData);
}
There are so many things wrong with your code it is hard to know where to begin:
client.connect; is syntactic sugar for [client connect], however since connect is not a property (at least I hope it is not a property), you should not use the dot-notation.
The argument to isEqualToString: expects an NSString * object, not NSNull *. If you want to see whether the variable points to a string (as opposed to nil), or, if you want to make sure that the string actually contains characters, use:
if ([main_str length])
// do something
You assign a new mutable array that you own to id_arr using id_arr=[[NSMutableArray alloc]init];, however you completely overwrite this reference later with id_arr=[[udf objectForKey:#"id_value"] componentsSeparatedByString:#","];. This means that the original array that you created (and own) can no longer be referenced, and is leaked.
You never initialise the object that you allocated:
js=[[JsontoObject alloc]sivajiTV_response:main_str];
You create an Event object, but never use it or release it (this is a memory leak):
e1=[[Event alloc]init];

how can I change appearance of alert from UINotification?

is there any way to change the outlook(appearance shape) of UINotification Alert, like I can insert image on UIAlertView, as below
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"Status Update" message:myString delegate:nil cancelButtonTitle:#"OK" otherButtonTitles:nil];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 30, 100, 100)];
NSString *path = [[NSString alloc] initWithString:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:#"reminder_logo.png"]];
UIImage *bkgImg = [[UIImage alloc] initWithContentsOfFile:path];
[imageView setImage:bkgImg];
[bkgImg release];
[path release];
[alert addSubview:imageView];
[imageView release];
[alert show];
[alert release];
This code will show an image on UIAlertView. I want same thing for UINotification, but apple should accept it, because I can't alter their libraries, else rejection will happen from app store.
Local notifications are created and displayed by the system, not your app. Therefore you have no control over how they are presented.