3
私はUIAlertView
に画像と大きなボタンがあります。UIAlertViewの高さと幅を設定するには?
問題はデフォルトのUIAlertView
が非常に小さいことです。画像が正しく見えません。
したがって、UIAlertView
の高さと幅を増やしたいと考えています。つまり、カスタムUIAlertView
を作成したいと考えています。それを行う方法は何でしょうか?
ありがとうございました。
私はUIAlertView
に画像と大きなボタンがあります。UIAlertViewの高さと幅を設定するには?
問題はデフォルトのUIAlertView
が非常に小さいことです。画像が正しく見えません。
したがって、UIAlertView
の高さと幅を増やしたいと考えています。つまり、カスタムUIAlertView
を作成したいと考えています。それを行う方法は何でしょうか?
ありがとうございました。
AlertViewでTableViewを表示していますが、おそらくそれが役に立ちます。
ヘッダーファイルにこのコードを貼り付けます。
#import <UIKit/UIKit.h>
@interface aaViewController : UIViewController <UIAlertViewDelegate, UITableViewDelegate, UITableViewDataSource>{
UITextField *textfield;
UITableView *tableView1;
NSMutableArray *_data;
}
@property (nonatomic, retain) NSMutableArray *_data;
- (void) showAlertView;
- (void) doAlertViewWithTextView;
- (void) doAlertViewWithTableView;
@end
この埋め込みコードには、このコードが貼り付けられています。
#import "aaViewController.h"
@implementation aaViewController
@synthesize _data;
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
self._data = [NSMutableArray arrayWithObjects:@"Najeeb", @"Furqan", @"Khalid", nil];
[self doAlertViewWithTableView];
}
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return YES;
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
- (void) doAlertViewWithTextView {
UIAlertView *alert = [[UIAlertView alloc] initWithFrame:CGRectMake(0, 0, 300, 550)];
alert.title = @"Textview";
alert.message = @"I am doing cool stuff\n\n\n";
alert.delegate = self;
[alert addButtonWithTitle:@"Cancel"];
[alert addButtonWithTitle:@"OK"];
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(12, 90, 260, 200)];
textView.text = @"This is what i am trying to add in alertView.\nHappy New Year Farmers! The new Winter Fantasy Limited Edition Items have arrived! Enchant your orchard with a Icy Peach Tree, and be the first farmer among your friends to have the Frosty Fairy Horse. Don't forget that the Mystery Game has been refreshed with a new Winter Fantasy Animal theme! ";
textView.keyboardAppearance = UIKeyboardAppearanceAlert;
[alert addSubview:textView];
[textView release];
[alert show];
[alert release];
}
- (void) doAlertViewWithTableView {
NSLog(@"Now play with TableView \n%@", self._data);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Table View" message:nil delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
tableView1 = [[[UITableView alloc] initWithFrame:CGRectMake(10, 40, 264, 200) style:UITableViewStyleGrouped] autorelease];
tableView1.dataSource = self;
tableView1.delegate = self;
[alert addSubview:tableView1];
[alert show];
[alert release];
}
//#define kTag_EnterNameAlert 1
//#define kTag_NameEmtryField 100
- (void) showAlertView {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Congratulations!"
message:@"You earned a top score! Enter your name:\n\n"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"OK", nil];
//alert.tag = kTag_EnterNameAlert;
CGRect entryFieldRect = CGRectZero;
if(UIDeviceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)) {
entryFieldRect = CGRectMake(12, 90, 260, 25);
}
else {
entryFieldRect = CGRectMake(12, 72, 260, 25);
}
textfield = [[UITextField alloc] initWithFrame:entryFieldRect];
//textfield.tag = kTag_NameEmtryField;
textfield.backgroundColor = [UIColor whiteColor];
textfield.keyboardType = UIKeyboardTypeAlphabet;
textfield.keyboardAppearance = UIKeyboardAppearanceAlert;
textfield.autocorrectionType = UITextAutocorrectionTypeNo;
textfield.clearButtonMode = UITextFieldViewModeWhileEditing;
[alert addSubview:textfield];
[textfield becomeFirstResponder];
[textfield release];
[alert show];
[alert release];
}
# pragma -
# pragma alertView frame Methods
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
NSLog(@"name:%@ buttonID:%d",textfield.text,buttonIndex);
if (buttonIndex == 1) {
[self doAlertViewWithWebView];
}
else {
NSLog(@"%@",alertView.message);
}
}
// to set the alertView frame size.
- (void)willPresentAlertView:(UIAlertView *)alertView {
[alertView setFrame:CGRectMake(10, 100, 300, 320)];
for (UIView *views in [alertView subviews]) {
NSLog(@"%@",views);
if (views.tag == 1 || views.tag == 2) {
[views setFrame:CGRectMake(views.frame.origin.x, views.frame.origin.y+200, views.frame.size.width, views.frame.size.height)];
}
}
}
# pragma -
#pragma mark TableView Methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section == 1) {
return [_data count];
}
else
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString* const SwitchCellID = @"SwitchCell";
UITableViewCell* aCell = [tableView dequeueReusableCellWithIdentifier:SwitchCellID];
if(aCell == nil) {
aCell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:SwitchCellID] autorelease];
aCell.textLabel.text = [NSString stringWithFormat:@"Option %d", [indexPath row] + 1];
aCell.selectionStyle = UITableViewCellSelectionStyleNone;
UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];
switchView.tag = [indexPath row]+1;
aCell.accessoryView = switchView;
[switchView setOn:YES animated:NO];
[switchView addTarget:self action:@selector(soundSwitched:) forControlEvents:UIControlEventValueChanged];
[switchView release];
}
return aCell;
}
- (void) soundSwitched:(UISwitch*) switchView {
if (!switchView.on) {
NSLog(@"chal bhag %d", switchView.tag);
}
}
@end
注:AppDelegateには、これをサブビューとして追加します。
アラートビューで重量を増やすためにたくさん食べさせてもいいですか? ;) –
簡単な方法:メッセージ本体に余分な改行(\ n)を追加/追加します。 – basvk
@ basvk- thaks for replay。アラートビューの高さは増加するだけで、幅は増加しません。主なことは、メッセージの代わりにイメージを表示したいということです。 – Rohan