[iGuides.ru] Библиотека программиста под iOS.pdf

(260 KB) Pobierz
Стра�½ица
1
из
2
1
2 Ctrl
Показывать
40
сообще�½ий этой темы �½а од�½ой стра�½ице
iGuides.ru |
Ум�½ые советы
-
Всё об
Apple, Samsung, Google, Microsoft
и других
(
http://www.iguides.ru/forum/index.php
)
-
Разработка программ для
AppStore
(
http://www.iguides.ru/forum/forumdisplay.php?f=162
)
- -
Библиотека программиста под
iOS
(
http://www.iguides.ru/forum/showthread.php?t=14353
)
ILYA2606
Библиотека программиста под
iOS
10.12.2010 23:24
Здесь будет м�½ого полез�½ых примеров реализации каких-�½ибудь полез�½ых фу�½кций.
Кто з�½ает еще
-
пишите!
Изображе�½ия
Как скачать, создать и показать изображе�½ие через
URL
URL
�½а удале�½�½ое изображе�½ие
Код:
NSURL *url = [NSURL URLWithString:
@"http://darknessproduction.ru/iguides.png"];
Созда�½ие
UIImage
из
NSData
Код:
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];
Поместим �½а �½аш
UIView
Код:
NSURL *url = [NSURL URLWithString:
@"http://darknessproduction.ru/iguides.png"];
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];
[self.view addSubview:[[UIImageView alloc] initWithImage:image]];
[свер�½уть]
Закругляем изображе�½ия и прочие
view
Добавляем
Код:
#include <QuartzCore/QuartzCore.h>
в
viewDidLoad
�½ашего ко�½троллера прописываем:
Код:
CALayer * ourLayer = [imageView layer]; //
Будем округлять
UIImageView
ourLayer.cornerRadius = 8.0f;
//
Задаем радиус для округле�½ия.
ourLayer.masksToBounds = YES;
//
Чтобы за оваль�½ой гра�½ицей в углах
�½ичего �½е рисовалось
ourLayer.borderWidth = 0.0f;
//
Гра�½ицу рисовать �½е будем. Если �½уж�½а
-
указываем толщи�½у
Ну и собстве�½�½о всё. Очевид�½о, что если хотим получить оваль�½ый
View,
указываем
cornerRadius
рав�½ый полови�½е дли�½ы короткой сторо�½ы �½ашего
View.
[свер�½уть]
Как сделать а�½имацию из карти�½ок
GIF
грузить �½е получится ста�½дарт�½ыми средствами
SDK,
так что если речь идет �½е о а�½имации в
OpenGL,
то делайте так:
1.
создаете
UIImageView
2.
грузите серию изображе�½ий вашей а�½имации как массив
UIImage
объектов
3.
проставляете массив изображе�½ий для свойства
animationImages
в
UIImageView
4.
уста�½авливаете продолжитель�½ость а�½имации в свойстве
animationDuration
5. startAnimating
для
UIImageView
Код:
NSArrray *theImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"image_1.png"],
[UIImage imageNamed:@"image_2.png"],
[UIImage imageNamed:@"image_3.png"],
[UIImage imageNamed:@"image_4.png"],
[UIImage imageNamed:@"image_5.png"], nil];
UIImageView *anImageView = ... //мембер
класса, или создаете по месту, �½е важ�½о
anImageView.animationImages = theImages;
anImageView.animationDuration = 1.0; // 1
секу�½да
[anImageView startAnimating];
[свер�½уть]
Как отправить емейл с вложе�½иями, используя камеру и
фотоальбом
Запуск камеры
iPhone
Код:
- (void)buttonPressed:(UIButton *)button
{
//
Созда�½ие
image picker controller
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
//
Уста�½авливаем сорс для камеры
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
//
Текущий
Delegate
imagePicker.delegate = self;
//
Вырубаем редактирова�½ие изображе�½ий
imagePicker.allowsImageEditing = NO;
//
Показываем
image picker
[self presentModalViewController:imagePicker animated:YES];
}
Ко�½вертируем изображе�½ие с камеры в
NSData
Код:
- (void) imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//
Берем изображе�½ие из и�½формации словаря
UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
//
Закрываем ок�½о камеры
[self dismissModalViewControllerAnimated:YES];
//
Запускаем фу�½кцию отправки изображе�½ия по почте
[self performSelector:@selector(emailImage:) withObject:image afterDelay:1.0];
//
Релизим
picker
[picker release];
}
Отправка изображе�½ия с камеры
Код:
- (void)emailImage:(UIImage *)image
{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc]
init];
picker.mailComposeDelegate = self;
//
Уста�½авливаем тему письма
[picker setSubject:@"Picture from my iPhone!"];
//
Добавляем адреса почты, куда будем отсылать
[picker setToRecipients:[NSArray
arrayWithObjects:@"emailaddress1@domainName.com",
@"emailaddress2@domainName.com", nil]];
[picker setCcRecipients:[NSArray
arrayWithObject:@"emailaddress3@domainName.com"]];
[picker setBccRecipients:[NSArray
arrayWithObject:@"emailaddress4@domainName.com"]];
//
Уста�½авливаем тело сообще�½ия
NSString *emailBody = @"I just took this picture, check it out.";
//
Вырубаем
XTML
формат
[picker setMessageBody:emailBody isHTML:NO];
//
Создаем
NSData
из
PNG
изображе�½ия с камеры
NSData *data = UIImagePNGRepresentation(image);
//
Добавляем изображе�½ие к письму как вложе�½ие
[picker addAttachmentData:data mimeType:@"image/png" fileName:@"CameraImage"];
//
Показываем ок�½о отправки письма
[self presentModalViewController:picker animated:YES];
//
Релизим
picker
[picker release];
}
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
//
Закрываем ок�½о отправки письма
[self dismissModalViewControllerAnimated:YES];
}
ИСХОДНИК
[свер�½уть]
Как а�½имирова�½�½о вращать изображе�½ие
Радиа�½ы и градусы
Переводим из градусов в радиа�½ы
Код:
// This is defined in Math.h
#define M_PI 3.14159265358979323846264338327950288 /* pi */
#define DEGREES_TO_RADIANS(angle) ((angle / 180.0) * M_PI)
Вращаем изображе�½ие
Код:
- (void)rotateImage:(UIImageView *)image duration:(NSTimeInterval)duration
curve:(int)curve degrees:(CGFloat)degrees
{
//
Уста�½авливаем а�½имацию
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[UIView setAnimationCurve:curve];
[UIView setAnimationBeginsFromCurrentState:YES];
CGAffineTransform transform =
CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(degrees));
image.transform = transform;
[UIView commitAnimations];
}
Вызов враще�½ия
Код:
- (void)startApp
{
UIImageView *imageToMove =
[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ArrowUp.png"]];
imageToMove.frame = CGRectMake(10, 10, 20, 100);
[self.view addSubview:imageToMove];
[self rotateImage:imageToMove duration:3.0
curve:UIViewAnimationCurveEaseIn degrees:180];
}
[свер�½уть]
Как а�½имирова�½�½о передви�½уть изображе�½ие
Передвиже�½ие изображе�½ия
Код:
- (void)moveImage:(UIImageView *)image duration:(NSTimeInterval)duration
curve:(int)curve x:(CGFloat)x y:(CGFloat)y
{
//
Уста�½авливаем а�½имацию
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[UIView setAnimationCurve:curve];
[UIView setAnimationBeginsFromCurrentState:YES];
// The transform matrix
CGAffineTransform transform = CGAffineTransformMakeTranslation(x, y);
image.transform = transform;
[UIView commitAnimations];
}
Вызов передвиже�½ия
Код:
- (void)startApp
{
UIImageView *imageToMove =
[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Square.png"]];
imageToMove.frame = CGRectMake(10, 10, 20, 100);
[self.view addSubview:imageToMove];
[self moveImage:imageToMove duration:3.0
curve:UIViewAnimationCurveLinear x:50.0 y:50.0];
}
[свер�½уть]
Как сохра�½ить
UIImage
в
PNG
или
JPG
Код:
//Создадим
пути для выход�½ых форматов
NSString *pngPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents/Test.png"];
NSString *jpgPath = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents/Test.jpg"];
//
Запишем
UIImage
в
JPEG
с ми�½ималь�½ым сжатием
(�½аилучшее
качество)
[UIImageJPEGRepresentation(image, 1.0) writeToFile:jpgPath atomically:YES];
//
Запишем
UIImage
в
PNG
[UIImagePNGRepresentation(image) writeToFile:pngPath atomically:YES];
//
Проверим как хорошо у �½ас записалось:
//
Создаем файл-ме�½еджер
NSError *error;
NSFileManager *fileMgr = [NSFileManager defaultManager];
//
Уста�½авливаем директорию Докуме�½тов
NSString *documentsDirectory = [NSHomeDirectory()
stringByAppendingPathComponent:@"Documents"];
//
Проверяем список файлов, который содержит директория Докуме�½тов
NSLog(@"Директория
Докуме�½тов:
%@", [fileMgr
contentsOfDirectoryAtPath:documentsDirectory error:&error]);
ИСХОДНИК
[свер�½уть]
Как сделать с�½имок с камеры и сохра�½ить в фотоальбом
Zgłoś jeśli naruszono regulamin