Cocoa Things
Objective C, Cocoa, Cocoa Touch, iOS, Mac OS X
Saturday, April 5, 2014
cocoa-resources.com
cocoa-resources.com is a new website with links to various resources for iOS and Mac OS X developers. It's still in alpha stage but still worth to be known cocoa-resources.com
Friday, June 7, 2013
Sizes - a really good app to resize retina images
There are many apps to resize retina images in the Mac App Store. The best one I've found is called Sizes. It needs me only to drag my images and drop them on the icon at the dock. And that's it. No distractive windows, no inappropriate messages. I don't even need to name files properly, because Sizes does it for me automatically. For example, if I have a file example.png and it is 200x200, then Sizes will create 2 files: example@2x.png which is 200x200 and example.png which is 100x100. Really simple.
There are also some options to have more controll on this app. Here is how it looks like:
More information and download like on the product website: http://www.apptorium.com/products/sizes. Really recommended.
There are also some options to have more controll on this app. Here is how it looks like:
More information and download like on the product website: http://www.apptorium.com/products/sizes. Really recommended.
Thursday, April 11, 2013
UIWebView and shadow
Last time I was trying to add a shadow to UIWebView. And it wasn't so obvious, because the standard way didn't work:
But there is a simple solution. You just have to add these 2 lines:
webView.layer.shadowRadius = 8;
webView.layer.shadowOffset = CGSizeMake(0, 0);
webView.layer.shadowColor = [[UIColor grayColor] CGColor];
webView.layer.shadowOpacity = 1;
But there is a simple solution. You just have to add these 2 lines:
Wednesday, March 6, 2013
How to make UIButton text left (or right) aligned?
It's a really common question and the answer is:
[button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
Of course, there is also:
[[button titleLabel] setTextAlignment:NSTextAlignmentLeft];
The difference is that the first method sets alignment of the button content, and the second one sets the alignment of the text in the label. But the label frame is as wide as the text is. So if the label has only 1 line, it will always be centered.
Tuesday, March 5, 2013
How to check if app is run under iPhone 5 (the one with 4" screen)?
Sometimes you need to check if app is run under iPhone 5 which has higher screen resolution than previous models. This code should be helpful:
- (BOOL)isIPhone5
{
return [[UIScreen mainScreen] bounds].size.height == 568;
}
Monday, February 4, 2013
Converting string encoding from NSString to NSStringEncoding
Let's say you have to convert encoding from string representation (NSString) to NSStringEncoding. For instance, it happens when you want to get string from response using NSURLConnection. Here is simple solution:
- (NSStringEncoding)encodingStringToNSStringEncoding:(NSString *)encString
{
CFStringRef cfEncoding = (__bridge CFStringRef)encString;
return CFStringConvertEncodingToNSStringEncoding(
CFStringConvertIANACharSetNameToEncoding(cfEncoding));
}
Friday, February 1, 2013
Safari and retina images
Every iOS app developer, and last time Mac OS X app developer, knows that it's not enough to prepare image in one resolution. Now we need 4 times greater (2 times for every dimension) images that can be displayed on Retina displays. But what about websites? These devices also display websites and most of them just doesn't look perfect. And that's right, they also should have 2 version of every image. How to set them? The solution is quite simple. We have to set alternate image using -webkit-image-set function. The following code shows an example that says everything:
To work with retina images more productively, it's good to use a tool to resize images automatically. I recommend Sizes app, because it alows you to use different suffix (like _2x) instead of @2x and makes image resizing really simple.
More details you can find in Safari Development Library.
.aClass {
background: url(image.png);
background: -webkit-image-set(url(image.png) 1x, url
(image_2x.png) 2x);
}It's really important to define background the traditional way, because not every webbrowser recognize -webkit-image-set function.
To work with retina images more productively, it's good to use a tool to resize images automatically. I recommend Sizes app, because it alows you to use different suffix (like _2x) instead of @2x and makes image resizing really simple.
More details you can find in Safari Development Library.
Subscribe to:
Posts (Atom)