Отличные фрагменты кода UIKit / Objective-C - PullRequest
37 голосов
/ 11 июня 2010

Впервые в разработке Objective-C для iPhone / iPod touch / iPad, но я начинаю открывать для себя много возможностей в одном строчке кода, такого как:

[UIApplication sharedApplication].applicationIconBadgeNumber = 10;

Который будет отображать этот отличительный красный значок уведомления на вашем приложении iphone с номером 10.

Пожалуйста, поделитесь вашими любимыми одно-или двумя строчками в Objective-C для iPhone / iPod touch / iPad здесь. ТОЛЬКО ПУБЛИЧНЫЕ API .

Ответы [ 5 ]

39 голосов
/ 14 июня 2010

Открыть URL-адрес в Safari

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.google.com/"]];

Скрыть строку состояния

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];

Набрать номер телефона (Только для iPhone)

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://9662256888"]];

Запустить Apple Mail

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://mymail@myserver.com"]];

перестать отвечать на сенсорные события

[[UIApplication sharedApplication] beginIgnoringInteractionEvents];

активные события касания

[[UIApplication sharedApplication] endIgnoringInteractionEvents];

Показать индикатор активности сети

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

Скрыть активность сетиИндикатор

[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

Запрещает iPhone переходить в спящий режим

[UIApplication sharedApplication].idleTimerDisabled = YES;
14 голосов
/ 19 июня 2010
  1. Отображение окна предупреждения:

    UIAlertView* alert = [[[UIAlertView alloc] initWithTitle:@"Warning" message:@"too many alerts" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease];
    [alert show] 
    
  2. Получение пути к папке с документами:

    NSArray*  paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString* documentsDirectory = [paths objectAtIndex:0];
    
  3. Переместите другой контроллер вида на панель навигации:

    [self.navigationController pushViewController:anotherVC animated:YES];
    
  4. Исчезните UIView, анимируя альфа вниз до 0:

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];  // fade away over 1 seconds
    [aView setAlpha:0]; 
    [UIView commitAnimations];                      
    
  5. Получить название приложения

    self.title = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
    
  6. Изменить строку состояния на черный

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
    
  7. Изменить стильпанель навигации (из контроллера вида):

    self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
    
  8. Сохранить NSString в NSUserDefaults:

    NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:loginName forKey:kUserLoginName];
    
  9. Получить NSString изNSUserDefaults:

    NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
    

    NSString * loginName = [значения по умолчанию stringForKey: kUserLoginName];

  10. Убедитесь, что объекты поддерживают метод перед его вызовом:

    if ([item respondsToSelector:@selector(activateBOP:)]) {
        [item activateBOP:closeBOP];
    }
    
  11. Записать имя класса и функции:

    NSLog(@"%s", __PRETTY_FUNCTION__);
    
  12. Добавить закругленные углы и / или границу вокруг любого элемента UIView (self)

    self.layer.borderColor  = [UIColor whiteColor].
    self.layer.cornerRadius = 8;     // rounded corners
    self.layer.masksToBounds = YES;  // prevent drawing outside border
    
  13. Откройте приложение Google Maps с указанием направления между двумя широтами / долготами

    NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f&dirflg=d", start.latitude, start.longitude, finish.latitude, finish.longitude];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]]; 
    
10 голосов
/ 17 июня 2010

Сохранить bool для пользовательских настроек по умолчанию

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"Yes Bool"];

Скопировать файл из x в y

[[NSFileManager defaultManager] copyItemAtPath:x toPath:y error:nil];

Показать новый вид

[self presentModalViewController:(UIViewController *) animated:YES];

Метод касания экрана

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {}

Получить каталог документов

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

Загрузить URL

[MyWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://couleeapps.hostei.com"]]];  

Получить текущую дату и время:

NSCalendar *gregorian = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [gregorian components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:[NSDate date]];

Собственный тип перечисления:

typedef enum {
    a = 0, b = 1, c = 2
} enumName;

Кварцевая дуга

CGContextRef ctxt = UIGraphicsGetCurrentContext();
CGContextAddArc(ctxt, x, y, radius, startDeg, endDeg);
8 голосов
/ 11 июня 2010

Заставить устройство вибрировать:

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

Открыть приложение Сообщения с определенным номером телефона:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms:123456789"]];

Прекратить отвечать на события касания:

[[UIApplication sharedApplication] beginIgnoringInteractionEvents];

Начните отвечать снова:

[[UIApplication sharedApplication] endIgnoringInteractionEvents];

И, наконец, одна строка кода браузера :

[[webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString: [urlText stringValue]]]];
5 голосов
/ 18 июня 2010

Измените заголовок на кнопке «Назад» в UINavigationView.Используйте этот код в UINavigationController, прежде чем нажимать на представление

UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style: UIBarButtonItemStyleBordered target:nil action:nil];


self.navigationItem.backBarButtonItem = backBarButtonItem;
[backBarButtonItem release];
...