반응형 모바일개발4 [iOS] iOS8 AlertView 텍스트 상단 정렬 문제와 해결 방법 iOS8 AlertView 텍스트 정렬 문제예전 iOS 앱을 유지보수하다 보면 UIAlertView를 사용한 오래된 코드에서, iOS8 업데이트 후 Alert 메시지 텍스트가 상단에 붙어 보이는 문제를 겪은 적이 있습니다. iOS7에서는 정상 가운데 정렬이었지만, iOS8에서 레이아웃 방식이 변경되면서 발생한 현상입니다.해결은 매우 단순합니다. AlertView 제목(title)에 nil 대신 빈 문자열("")을 넣으면 텍스트가 다시 정상적으로 중앙 정렬됩니다.1. 문제 원인iOS8에서는 UIAlertView 내부 레이아웃이 변경되면서, title이 nil일 경우 message가 타이틀 영역까지 끌어올려지는 레이아웃 버그가 있었습니다.즉, 다음 코드처럼 title을 nil로 지정하면 문제가 발생합니다:U.. 2014. 10. 10. [iOS] iPhone에서 올바른 URL 인코딩 방법 (Objective-C & Swift 최신 정리) [iOS] iPhone에서 URL 인코딩이 제대로 되지 않을 때예전 iOS 앱 유지보수 중, 로그인 기능에서 비밀번호에 = 문자가 포함되면 정상적으로 서버에 전달되지 않는 문제가 있었습니다. 원인은 URL 인코딩에 사용하던 API가 특수문자를 완전하게 인코딩하지 않았기 때문입니다.특히 예전 iOS 개발에서 많이 사용하던:[string stringByAddingPercentEscapesUsingEncoding:]이 메서드는 다음과 같은 문제를 가지고 있습니다.이미 deprecated 됨/ & = ? + # % 등 중요한 URL 예약 문자 인코딩 불가능RFC 3986 기준을 완전히 만족하지 않음즉, “진정한 URL 인코딩”이 되지 않아 인증/로그인/REST API 호출에서 문제가 발생할 수 있습니다.1. (.. 2013. 12. 10. [iOS] 화면 밝기를 강제로 최대값으로 변경 후 다시 복원하는 방법 (2025 최신 기준) iOS에서 화면 밝기 변경 후 이전 밝기를 복원하기편의점이나 매장 결제 시, 모바일 바코드를 직원에게 보여줄 때 화면을 자동으로 최대 밝기로 올렸다가 해당 화면이 종료되면 이전 밝기로 복원해달라는 요청을 많이 받습니다.예전에는 Objective-C에서 UIScreen의 brightness를 직접 변경하는 방식으로 구현했고, 아직도 유지보수 중인 레거시 앱에서는 동일한 방식이 사용됩니다.1. 예전 Objective-C (레거시 프로젝트 유지보수용)헤더 파일에 저장용 변수 선언:CGFloat oldBrightness;ViewDidLoad에서 기존 밝기 저장 + 밝기 강제 최대- (void)viewDidLoad { [super viewDidLoad]; oldBrightness = [[UIScreen.. 2013. 10. 11. 안드로이드 MediaPlayer 최신 사용법 정리(2025 ver.) 안드로이드 MediaPlayer 이해하기MediaPlayer는 안드로이드에서 오디오와 동영상을 재생하기 위해 사용되는 기본 API입니다. 객체만 생성한 상태에서는 재생할 대상이 없으므로 반드시 미디어 데이터 소스를 전달해야 합니다. 2024~2025년 기준에서도 MediaPlayer는 여전히 사용되지만, ExoPlayer 같은 대안이 많이 사용되는 추세입니다. 그러나 간단한 오디오 재생 또는 짧은 효과음 재생에서는 MediaPlayer가 가장 간단한 선택입니다.1. MediaPlayer 객체 생성MediaPlayer player = new MediaPlayer();단순히 생성한 상태에서는 아무 작업도 할 수 없으며, 반드시 setDataSource()로 재생할 파일 또는 스트림을 전달해야 합니다.2. D.. 2011. 2. 17. 이전 1 다음