posted by dalnimbest 2013. 5. 12. 10:45

http://www.idev101.com/code/User_Interface/sizes.html


//가로 세로 모드에서의 싸이즈 변화
http://www.vickiwenderlich.com/2011/07/basic-iphone-ipad-screen-component-pixel-dimensions/

//애플 문서
http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html


//무니만개발자님의 블로그
http://j2enty.com/entry/iOS-%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%B9%8C%EB%8D%94-%EC%82%AC%EC%9A%A9%EC%8B%9C-%EC%9C%A0%EC%9D%98%EC%82%AC%ED%95%AD-%EB%B0%8F-Control-%EC%82%AC%EC%9D%B4%EC%A6%88



posted by dalnimbest 2013. 5. 11. 23:11

같은 형태의 이미지이지만 컨트롤의 넓이에 따라서 이미지를 여러개 만들어야할경우에는 이미지를 한개 만들어두고 늘여서 쓰면 된다. 영어로는 stretchable images라고 한다.

stretchable image를 사용하면 최소크기의 이미지를 한개 만들어서 사용하기 때문에 이미지 때문에 용량이 크지는것을 방지하여 용량측면에서도 이득이 있다.

stretchable image는 3개 부분으로 구분되어 있는데 왼쪽, 가운데, 오른쪽으로 나눌수 있는데, 왼쪽 오른쪽을 각각 left cap, right cap이라고 부른다. 실제로 늘어나는 이미지(stretchable)는 가운데 부분으로 보통 1pixel로 만든다.

<stretchImage.png 이미지>

                                  https://a248.e.akamai.net/camo.github.com/fa6222d5c3156dd454fad97410e5e91b7aba2020/687474703a2f2f69646576726563697065732e66696c65732e776f726470726573732e636f6d2f323031302f31322f627574746f6e2e706e673f773d313126683d3330

이런 형태의 이미지를 한개 만들어 두면 된다.
이경우 이미지의 총 넓이는 11pixel일때, left cap이 5pixel이고 middle은 1pixel, right cap은 left cap과 같아야 한다.(left cap과 right cap이 다를경우는 어떻게 해야할지 모르겠다.)

//소스 코드
UIImage* stretchImg =[[UIImage imageNamed:@"stretchImage.png"] stretchableImageWithLeftCapWidth:5.0 topCapHeight:0.0]
UIImageView* imageView = [[UIImageView alloc] initWithImage:stretchImg]; imageView.frame = CGRectMake(0, 0, 100.0, stretchImg.size.height);


<결과 Image>
https://a248.e.akamai.net/camo.github.com/66842c8beec27aaa76d5cef1b627021db6aec28e/687474703a2f2f69646576726563697065732e66696c65732e776f726470726573732e636f6d2f323031302f31322f7374726574636865645f627574746f6e2e706e673f773d33303026683d3330

 




posted by dalnimbest 2013. 5. 11. 21:08


//버튼 동적으로 생성하기
    UIButton *btnCancel = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btnCancel.frame = CGRectMake(110, 55, 90, 37);
    [btnCancel setTitle:[NSString stringWithFormat:@"%@",NSLocalizedString(@"Cancel", @"")]  forState:UIControlStateNormal];
    btnCancel.backgroundColor = [UIColor blueColor];           
    [btnCancel addTarget:self action:@selector(dismissBtnCancel) forControlEvents:UIControlEventTouchUpInside];
    [theView addSubview:btnCancel];

posted by dalnimbest 2013. 5. 11. 12:15

버튼등에 올릴 이미지가 버튼보다 크면 이미지밖에 안보인다. 또한 이미지전체가 메모리에 올라오기 때문에 불필요한 메모리 낭비가 된다.

그래서 버튼의 크기에 맞게 이미지를 resize해서 올린다.

//원본 이미지와 원하는 싸이즈를 받아서 싸이즈만큼의 이미지를 리턴
-
(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {     UIGraphicsBeginImageContext(newSize);
    
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];     UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();     UIGraphicsEndImageContext(); return newImage;
}

//사용방법
UISegmentedControl
* segmentButton; segmentButton = [UISegmentedControl segmentedControlWithItems: [NSArray arrayWithObjects: [self imageWithImage:[UIImage imageNamed:@"option_one.png"] scaledToSize:CGSizeMake(32, 32)], [self imageWithImage:[UIImage imageNamed:@"option_two.png"] scaledToSize:CGSizeMake(32, 32)], nil]]; segmentButton.contentMode = UIViewContentModeScaleToFill; segmentButton.frame = CGRectMake(10, 10, 200, 32); [view addSubview:segmentButton];



posted by dalnimbest 2013. 2. 5. 08:31



* http://www.findbestopensource.com/



* http://www.findbestopensource.com/