2013-01-11 19 views
5

Ben 3 düğme ve metin (etiket ve NOT TextView'un) ben hep birlikte reçel ise, bu küçücük kaydırma metin ile çirkin olursunuz ve tüm düğmeleri en çekici olan bir alertview alanı. Bunu nasıl düzelteceğini bilen var mı?UIALertView birden düğmeleri

cevap

7

Neden bu için özel bir görünümü oluşturmak için çalışmayın.

sen, vb boyut, renk, arka plan

özelleştirmek Ve kalıcı bir pencere/görünüm olarak göstermek istediğiniz gibi kullanabilirsiniz

.


hala alertView kullanmak istiyorsanız kadar sonra boşluk verebilir: Sana iki uiaertviews yapıp sonra

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 

uyarının hangi görüntülemeyi kontrol kullanmanızı öneririz

UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Title" message:@"\n\n!\n\n\n\n" delegate:self cancelButtonTitle:@"Button 1" otherButtonTitles:@"Button 2",@"Button 3", nil]; 
[alert show]; 
+0

Teşekkürler ama Objective-C konusunda yeniyim beri, ben birden fazla görünüm ile başlamış değil, ama yine de büyük bir cevabı Ya benim 2 cevapla ilgili – user1970792

+0

(.. ben oy isterdim)? –

+0

Ben bunu denedim – user1970792

0

tıklandı. Bir uialertview gerçekten ihtiyacınız varsa, başka cevap da harika.

Ayrıntılı:

  1. görünümünüzü denetleyicisine bir uialertview temsilci ekleyin:

    @interface ViewController : UIViewController <UIAlertViewDelegate>  
    
  2. bu gibi görünmelidir 2 alertViews oluşturarak:

    UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"Message" message:@"the first UIAlertView" delegate: self cancelButtonTitle:@"Back" otherButtonTitle:@"More Options", nil]; 
    

ve sn ond: En ViewController.m olarak

UIAlertView *alert2 = [[UIAlertView alloc] initWithTitle:@"More Options" message:nil delegate:self cancelButtonTitle:@"Back" otherButtonTitle:@"Option 1", @"Option 2", @"Option 3", nil]; 
  1. ekleyin:

    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
    
    if (alertView == alert1) { 
        [alert2 show]; 
    } 
    
    else if (alertView == alert2) {   
    
    NSString *string = [alertView buttonTitleAtIndex:buttonIndex]; 
    
    if ([string isEqualToString:@"Option 1"]) { 
    
        //Do stuff 
    
    } 
    else if ([string isEqualToString:@"Option 2"]) { 
    
        //Do something else 
    } 
    else if ([string isEqualToString:@"Option 3"]) { 
    
        //Do something 3rd 
    } 
    } 
    
+1

Neden başparmak aşağı? – JomanJi

5

basit bir yolu metin aşağı görmek taşımak için bir mesaj

[alertViewObject setMessage:@"\n"]; 

eklemektir Çerçevenizin etki etmemesinin nedeni şudur: Animasyona başlamadan önce görünüm hiyerarşisini yiyor. Ayrıca, metin görünümünü ilk cevaplayıcı yapmalısınız, böylece klavye açılır.

aşağıdaki kodu kullanarak AlertView özelleştirin.

// Customize Alert View 
UIAlertView *alertView = [UIAlertView new]; 
alertView.title = @"Alert Title"; 


// Adding Your Buttons 
[alertView addButtonWithTitle:@"Button1"]; 
[alertView addButtonWithTitle:@"Button2"]; 
[alertView addButtonWithTitle:@"Button3"]; 
[alertView addButtonWithTitle:@"Button4"]; 


// Add a Space for Text View 
alertView.message = @"\n"; 


// View heirarchy, set its frame and begin bounce animation 
[alertView show]; 


// Set the frame 
CGRect frame = alertView.frame; 
frame.origin.y -= 100.0f; 
alertView.frame = frame; 


// Adding TextField 
UITextField* text = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)]; 
text.borderStyle = UITextBorderStyleRoundedRect; 
[alertView addSubview:text]; 
[text becomeFirstResponder]; 

Umarım bu size yardımcı olacaktır. büyük bir cevap için

+0

havalı, bunu deneyebilirim! – user1970792

+0

Bu harika görünüyor, mükemmel, ama önceden yazılmış bir mesaja ihtiyacım var, ama yine de başka bir durumda kullanabilirim. Zaman ayırdığınız ve cevapladığınız için teşekkürler! – user1970792

+0

ans'ımı kabul ettiniz mi ?? –