Отличные фрагменты кода UIKit/Objective-C
Новое в разработке Objective-C iPhone/iPod touch/iPad, но я начинаю открывать много возможностей в одном слое кода, например:
[UIApplication sharedApplication].applicationIconBadgeNumber = 10;
Будет отображаться этот отличительный красный значок оповещения на вашем iphone приложения с номером 10.
Пожалуйста, поделитесь своими любимыми одно- или двухслойными в Objective-C для iPhone/iPod touch/iPad здесь. ОБЩЕСТВЕННЫЕ API-интерфейсы.
Ответы
Ответ 1
Открыть 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://[email protected]"]];
перестать отвечать на события касания
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
активировать события касания
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
Показать индикатор активности сети
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
Скрыть индикатор активности сети
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
Предотвращает переход iPhone в спящий режим
[UIApplication sharedApplication].idleTimerDisabled = YES;
Ответ 2
-
Отобразите окно предупреждения:
UIAlertView* alert = [[[UIAlertView alloc] initWithTitle:@"Warning" message:@"too many alerts" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease];
[alert show]
-
Получить путь к папке "Документы":
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [paths objectAtIndex:0];
-
Нажмите другой контроллер вида на панель навигации:
[self.navigationController pushViewController:anotherVC animated:YES];
-
Угадайте UIView, анимируя альфа до 0:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1]; // fade away over 1 seconds
[aView setAlpha:0];
[UIView commitAnimations];
-
Получить имя приложения
self.title = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
-
Измените строку состояния на черный
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];
-
Измените стиль панели навигации (с помощью контроллера вида):
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
-
Сохраните NSString в NSUserDefaults:
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:loginName forKey:kUserLoginName];
-
Получить NSString из NSUserDefaults:
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
NSString * loginName = [defaults stringForKey: kUserLoginName];
-
Убедитесь, что объекты поддерживают метод до его вызова:
if ([item respondsToSelector:@selector(activateBOP:)]) {
[item activateBOP:closeBOP];
}
-
Введите имя класса и функции:
NSLog(@"%s", __PRETTY_FUNCTION__);
-
Добавьте закругленные углы и/или границу вокруг любого элемента UIView (self)
self.layer.borderColor = [UIColor whiteColor].
self.layer.cornerRadius = 8; // rounded corners
self.layer.masksToBounds = YES; // prevent drawing outside border
-
Откройте приложение Google Maps с направлениями между двумя точками lat/long
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]];
Ответ 3
Сохранить 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);
Ответ 4
Сделайте вибрацию устройства:
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
Измените заголовок на кнопке "Назад" в UINavigationView. Используйте этот код в UINavigationController, прежде чем нажимать на просмотр
UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style: UIBarButtonItemStyleBordered target:nil action:nil];
self.navigationItem.backBarButtonItem = backBarButtonItem;
[backBarButtonItem release];