본문 바로가기

프로그래밍/iOS

(182)
[iOS] 원형 뷰 만드는 법 카카오톡 프사와 같이 뷰를 원형으로 만드는 방법원형으로 만들기 위해서는 전제가 뷰의 크기 자체가 정사각형이어야 한다.이 예제에서는 button으로 사용하였지만 뷰의 layer를 사용하고 있기 때문에 UIView를 상속해서 사용하는 모든 객체에서 사용가능하다. /** button을 원형으로 만들어주는 함수 - parameter button : 원형으로 만들 버튼 */ func makeCircleButton(button:UIButton) { button.layer.masksToBounds = true button.layer.cornerRadius = photoButtonWidth.constant/2 // 이부분은 autolayout으로 설정해서 frame으로 얻어왔을때 제대로 동작하지 않아서 이렇게 사용, ..
[iOS] BGRA를 RGBA로 변경 AVCaptureSession을 사용하여 videoData를 얻을 시 kCVPixelFormatType_32RGBA를 쓰고 싶으나, 이 값으로 셋팅하면 동작하지 않는다.비디오에서 지원하는 포멧은 아래 링크와 같다.https://developer.apple.com/library/content/qa/qa1501/_index.html따라서 가장 비슷하게 사용가능한것이 kCVPixelFormatType_32BGRA이다. 이렇게 되면 captureOutput: didOutSampleBuffer: fromConnection: 함수에서 BGRA데이터를 받게 되는데 그 데이터를 RGBA로 변환하는 과정에 대해 기술한다. #if !defined(byte)typedef unsigned charbyte; // 바이트 선언 ..
[iOS] topViewController 가져오기 presentViewController를 했는데 반응이 없는경우의 대부분은 현재 뷰컨트롤러의 뷰가 가장 최 상단에 있지 않기 때문에 동작을 안하는 경우가 많다. 따라서 항상 topViewController를 가져오는 법 기술 AppDelegate.h/** @brief 항상 topViewcontroller를 반환하는 함수 @return topViewController */ - (UIViewController*)topViewController; // 함수 선언 AppDelegate.m#pragma mark - Other- (UIViewController*)topViewController { return [self topViewControllerWithRootViewController:[UIApplicatio..
[iOS] 단말 정보 가져오기 #import - (NSString *) platformString { size_t size; sysctlbyname("hw.machine", NULL, &size, NULL, 0); char *machine = malloc(size); sysctlbyname("hw.machine", machine, &size, NULL, 0); NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding]; free(machine); if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 1G"; if ([platform isEqualToString:@"iPhone1,2"..
[iOS] UITableView section 수정하기(folderable) 디자인 시안 중 접기/펼치기가 가능한 UI가 있어 section부분이 터치가 가능해야 했다.일단 기본적으론 지원하지 않기 때문에 오픈소스 찾아보려 했지만코드보기가 몹시 귀찮은 관계로 쉬운 방법을 찾다보니...view를 만들어 section을 대체할 수 있어 그 방법으로 도전간단하게 UITableViewCell을 끌어와서 label하나와 버튼 하나를 배치Id를 SectionCell이라 명명이 부분은 마음가는대로 해도 될듯이제 storyboard에서 만든 section을 사용하려면 UITableViewDelegate함수인 tableView:viewForHeaderInSection:함수에 아래와 같이 기술하면 된다.- (UIView *)tableView:(UITableView *)tableView viewFo..
[iOS] XCode8.3 에러내용 확인하기 예전 버전의 경우 에러창에서 더블 클릭하면 어떤 에러가 떴는지 상세하게 알려줬지만.. 이번 버전 같은 경우엔 아래와 같이 Reveal in log 메뉴를 통해 확인 가능하다.
[iOS] UITableView cell가져오기 항상 코드로만 작성하다가storyboard로 디자인하고 싶어서 그 과정을 기술 위와 같이 테이블뷰에 cell을 추가하고 원하는 디자인가이드대로 UI 작성Identifier를 원하는 이름으로 지정그리고 tableViewDelegate함수인 tableView: cellForRowAtIndexPath:에서 아래와 같이 기술NSString* identifier = @"ResultPriceCell";UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:identifier forIndexPath:indexPath]; return cell;cell안의 뷰들을 가지고 오고 싶은경우 view의 태그를 위와 같이 준 후역시나 tableViewDelega..
[iOS] UIButton touch 영역 늘리기 UIButton을 클릭 후 스토리 보드 우측 메뉴의 5번항목을 보면 Content Insets라는 항목이 존재한다.이를 늘리면 버튼 이미지 주변으로 해당 Inset만큼 범위가 늘어난다. 코드로 할경우는 아래와 같다. _closeButton.contentEdgeInsets = UIEdgeInsetsMake(20, 20, 20, 20);