Программирование под iPhone, iPad Objective-C уроки на русском статьи новости

2011-07-10 13:22


Вывести в консоль

NSLog(@"log: %@ ", myString);
NSLog(@"log: %f ", myFloat);
NSLog(@"log: %.2f ", myFloat);
NSLog(@"log: %i ", myInt);
NSLog(@"log: %с ", myChar);
NSLog(@"log: %f %e %g %.15g ", myDouble, myDouble, myDouble, myDouble); 

 

Отобразить картинку 
Добавляет картинку в любую часть экрана без использования IB

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f); 
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect]; 
myImage.image = [UIImage imageNamed:@"myImage.png"];[self.view addSubview:myImage]; 
[myImage release];

 

Размер экрана

CGRect screenRect = [[UIScreen mainScreen] applicationFrame];

 

Web view
Добавляет UIWebView в любую часть экрана без использования IB 

CGRect webFrame = CGRectMake(0.0, 0.0, 320.0, 460.0); 
UIWebView *webView = [[UIWebView alloc] initWithFrame:webFrame]; 
[webView setBackgroundColor:[UIColor whiteColor]]; 
NSString *urlAddress = @"http://imaladec.com/"; 
NSURL *url = [NSURL URLWithString:urlAddress]; 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:requestObj]; 
[self addSubview:webView]; 
[webView release];

 

Отобразить индикатор активности сети 
Отображает маленький индикатор активности сети в статусбаре. Используется в моменты работы устройства с сетью.

UIApplication* app = [UIApplication sharedApplication]; 
app.networkActivityIndicatorVisible = YES; // для остановки установить значение "NO"

 

Инициализация строки 
Пример устанавливает целое число в UILabel

currentScoreLabel.text = [NSString stringWithFormat:@"%d", currentScore];

 

Вибрация 
Включает вибро на устройстве

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

 

Алерт 
Отображает простое сообщение с кнопкой "OK"

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil 
                                                message:@"An Alert!" 
                                               delegate:self 
                                      cancelButtonTitle:@"OK" 
                                      otherButtonTitles:nil]; 
[alert show]; 
[alert release];

 

Найти Subviews 
Находит Subview по tag

UIView *anView = [self.view viewWithTag:1];

 

Случайные числа 
Инициализирует случайное число

NSInteger randNumber = rand()%2;

При каждом запуске приложения числа будут выбираться в одинакомов порядке. Чтобы перемешать порядок используйте:

srand(time(NULL));

 

Получить AppDelegate

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

 

Вывести NSData в консоль

NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
NSLog(@"%@", result); 
[result release]; 

 

Добавить кнопку

CGRect frameBtn = CGRectMake(160.0f, 150.0f, 144.0f, 42.0f);
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setImage:[UIImage imageNamed:@"buttonImage.png"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"buttonImageBackrgound.png"] forState:UIControlStateNormal]; 
[button setTitle:@"Hello" forState:UIControlStateNormal];
[button setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; 
[button setFrame:frameBtn];
[button addTarget:self action:@selector(pressBtn) forControlEvents:UIControlEventTouchUpInside];
NSLog(@"Title:%@", [button currentTitle]);
[self addSubview:button];

 

Работа с клавиатурой 

[myTextView becomeFirstResponder]; //показать
[myTextField resignFirstResponder]; //спрятать

 

Получить цвет в формате RGB + alpha

UIColor *curentColor = [UIColor colorWithRed:203/255.f green:203/255.f blue:203/255.f alpha:1.0];

 

Выполнить действие через определнный интервал времени

[someObject performSelector:@selector(myMethod) withObject:nil afterDelay:10.0f];

 

Открыть ссылку в Safari

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://imaladec.net/"]];

 

Выполнять часть кода только в режиме отладки

#if DEBUG_MODE_OUTPUT
    NSLog(@"In debug mode");
#endif

 

Перебор элеентов массива

[items enumerateObjectsUsingBlock:^(id item, NSUInteger idx, BOOL *stop) {
    NSLog(@"item:%@ index:%li", item, idx);
}];

 

Создание пути к файлу

NSBundle *bundle=[NSBundle mainBundle];
NSString *patchstr = [bundle pathForResource:@"имя" ofType:@"расширение"];

 

Основные методы таблицы

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return array.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                                      reuseIdentifier:CellIdentifier];
    }
    
    cell.textLabel.text = [array objectAtIndex:indexPath.row];
    
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    /*
    <#DetailVC#> *detail = [[<#DetailVC#> alloc] initWithNibName:@"<#Nib name#>"
                                                          bundle:nil];
    [self.navigationController pushViewController:detail animated:YES];
    */
}