iOS dependency manager for Objective-C

iOS ile programlama yaparken iOS’ün kendi frameworkünün sağlamadığı ekstra özelliklere ihtiyaç duyabiliriz. Bunun için Github gibi hazineler mevcut. Fakat birden çok framework kullandığımızda bu projemizin hem boyutunu artırıyor hem de gelen güncellemeleri yakalamamız zorlaşıyor. İşte tam burda da CocoaPods yükü omuzluyor ve bizi bu gibi sıkıntılardan arındırıyor. Aşağıda kısa ve öz olarak nasıl yükleceğimizi projemize nasıl dahil edeceğimizi anlatmaya çalıştım. Bir sıkıntınız olursa yazmaktan çekinmeyin!

Kurulum

Terminal’i açarak aşağıdaki komutları yazalım.
sudo gem install cocoapods

Daha sonra eğer aşağıdaki gibi bir prompt ile karşılaşırsanız “Y” yani yes diyerek devam edin.

rake's executable "rake" conflicts with /usr/bin/rake
Overwrite the executable? [yN]

Son adım olarak aşağıdaki satırı yazarak CocoaPods yüklemisini bitiriyoruz.
pod setup

Projeye dahil etmek

Kısaca cd komutunu kullanarak projemize ulaşıyoruz.

cd users\serhatsezer\Desktop\iOSDevelopment\SampleProject

Başlatıyoruz. Bu bizim proje dizininde pod file üretecek daha sonra onun içine projelerimizi ekleyip kullanabiliriz.
pod init

Daha sonra oluşturduğumuz Pod file dosyasını açıyoruz.
open -a Xcode Podfile

Kullanmak istediğimiz frameworkü yazıyoruz ve ios-sdk versiyonunu da değiştiriyoruz.
# Uncomment this line to define a global platform for your project
# platform :ios, "7.0"

target "ShowTracker" do
pod 'AFNetworking', '2.2.1'
end

daha sonra her yeni framework eklediğimiz de çağıracağımız komutu çağırıyoruz.
pod install

Aşağıdaki gibi bir mesaj alırsanız tamamdır! Artık cocoapods kullanıma hazır.
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.2.1)
Generating Pods project
Integrating client project

Uyarı : bundan sonra projemizi geliştirirken xcworkspace projesini kullanmanız gerekiyor.

Advertisements

iOS present view controller

Navigationcontroller’ların haricinde kullanıcılara pop-up tarzı veriler sunmak için “presentViewController:animated:completion:” metodunu kullanabiliriz. Kullanımı kolay ve özelleştirilebilir.
PresentViewController modal türünde olduğu için istediğiniz gibi transition ayarlamaları verebiliyorsunuz.
 

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
    
    UIModalTransitionStyle ease = UIModalTransitionStyleCrossDissolve;
    self.detailVC = (DetailViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"DetailVC"];
    self.detailVC.modalTransitionStyle = ease;
}

- (IBAction)doAction:(id)sender
{
    [self presentViewController:self.detailVC animated:YES completion:nil];
}

iOS TableView reload tableview row

Editable alanlarda bir değişiklik yaptığımzda tablonun tamamını reload etmek yerine sadece düzenlediğimiz satırı reload etmek isteyebiliriz. Bu gibi durumlarda aşağıdaki code snippeti kullanabilirsiniz.

[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationFade];

Kaynak :
http://stackoverflow.com/questions/3069339/how-to-dynamically-resize-uitableviewcell-height

http://blog.amyworrall.com/post/66085151655/using-auto-layout-to-calculate-table-cell-height
http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/
http://useyourloaf.com/blog/2014/02/14/table-view-cells-with-varying-row-heights.html

Cok faydalı bir kaynak, infinity scrolling with tableview
http://www.iosnomad.com/blog/2014/4/21/fluent-pagination