понедельник, 18 ноября 2013 г.

iOS How to load another storyboard. Как загрузить другую Storyboard

Для экранов 3'5 и 4 дюйма можно использовать различные Storyboard так как это дает возможность удобно проектировать интерфейс под разные размеры экранов. Для этого необходимо создать еще одну Storyboard разработать в ней соответствующей интерфейс. В файла AppDelegate.m необходимо добавить соответствующий код в метод didFinishLaunchingWithOptions для загрузки необходимой нам Storyboard. В этом методе необходимо при запуске приложения на устройстве определить, какое устройство сейчас используется 3'5 или 4 дюйма (определяется это в зависимости от высоты экрана для 3'5 дюймового это 480 точек, а для 4 дюймового это 568 точек). Далее создаем UIStoryboard на основании соответствующего файла и создаем первый ViewController. После этого создаем окно и назначаем этому окну initial View Controller.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
 
    CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
    UIViewController *initialViewController = nil;
    if (iOSDeviceScreenSize.height == 480) {
 
        UIStoryboard *iPhone35Storyboard = [UIStoryboard storyboardWithName:@"Storyboard-iphone35" bundle:nil];
 
        initialViewController = [iPhone35Storyboard instantiateInitialViewController];
 
    } else if (iOSDeviceScreenSize.height == 568) {
 
        UIStoryboard *iPhone4Storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
 
        initialViewController = [iPhone4Storyboard instantiateInitialViewController];
 
    }
 
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
 
    self.window.rootViewController = initialViewController;
 
    [self.window makeKeyAndVisible];
 
    return YES;
}

суббота, 26 октября 2013 г.

How to hide status bar in iOS 7

Изначально в приложении для iOS 7 status bar показывается по умолчанию. 

Приложение со status bar

Для того чтобы скрыть status bar в приложении для iOS 7 необходимо сделать следующее.

1. Выбрать проект в навигаторе, перейти в Targets и выбрать проект там, перейти на вкладку Info. На вкладке Info в разделе Custom iOS Target Properties нажать правую кнопку и выбрать Add Row. Нужно добавить строку Status bar is initially hidden и установить её значение YES 



Добавляем строку Status bar is initially hidden в настройки проекта   

2. Точно также добавить строку View controller-based status bar appearance и установить ей значение NO
Добавляем строку View controller-based status bar appearance в настройки проекта

3. Переходим на вкладку General и тут находим строку Status Bar Style и ставим галочку напротив Hide during application launch

Теперь запустим приложение - вот так оно будет выглядеть без status bar



воскресенье, 20 октября 2013 г.

iOS Книги необходимые для разработчика

Для того, чтобы стать настоящим профессионалом в разработке приложения для iOS необходимо много читать. Разработка под  iOS требует знания языка Objective-C и поэтому часть книг, которые я тут перечислю рассказывают о том как программировать на этом языке. Остальные книги рассматривают вопрос программирования под iOS непосредственно. Во всех книгах перечисленных здесь я нашел много полезного и интересного для себя. Еще до того, как я прочитал некоторые из них я уже писал приложения для iOS, но когда читаешь книгу все раскладывается по полочкам, начинаешь понимать как все устроено и как работают приложения. Из книг можно взять для себя много полезных решений.

1. Learn C on the Mac For OS X and iOS 2nd Edition (By David Mark , James Bucanek)



2. Learn Objective-C on the Mac For OS X and iOS 2nd Edition (By Scott Knaster , Waqar Malik , Mark Dalrymple)

четверг, 17 октября 2013 г.

iOS How to define interface orientation


Бывает необходимо определить текущее положение экрана - горизонтальное или вертикальное.

UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
 
if (interfaceOrientation == UIInterfaceOrientationMaskPortrait || 
    interfaceOrientation == UIInterfaceOrientationMaskPortraitUpsideDown) {
 
      NSLog(@"%@", @"portrait orientation"); // вертикальное
 
} else {
 
      NSLog(@"%@", @"landscape orientation");  // горизонтальное
 
}

среда, 16 октября 2013 г.

iOS How to define device type


Как определить тип устройства на котором запускается приложение. Чаще всего это необходимо для того чтобы задать размеры каких-то компонентов.

UIUserInterfaceIdiom idiom = UI_USER_INTERFACE_IDIOM();
if (idiom == UIUserInterfaceIdiomPad) {
  NSLog(@"%@", @"iPad");
} else {
   NSLog(@"%@", @"iPhone");
}


понедельник, 19 августа 2013 г.

IOS how to trim string

Для того чтобы обрезать у строки пустые места справа и слева необходимо выполнить следующее

NSString *str= [textField text];
NSCharacterSet *whitespace = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSString *trimmedStr = [str stringByTrimmingCharactersInSet:whitespace];

Reset UITextField's original placeholder text

Для того чтобы обрабатывать события связанные с вводом сиволов в текстовое поле, необходимо чтобы ваш ViewController был делегатом  UITextFieldDelegate

@interface ViewController : UIViewController<UITextFieldDelegate> 

Для обработки появление и исчезновения placeholder'а необходимо реализовать два метода из UITextFieldDelegate

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    textField.placeholder = nil;
}
 
- (void)textFieldDidEndEditing:(UITextField *)textField {
    textField.placeholder = @"Your Placeholdertext";
}