2012-02-29 5 views
1

iOS에서 데이터를로드하고 있음을 알리기 위해 iOS에서보기를 만들려고합니다. 중간에 200x200의 둥근 모서리가 있어야하며 "데이터로드 중 ..."이라는 단어와 배경이 투명합니다.투명 배경이있는 "데이터로드 중"알림

이 모든 것은 200x200 둥근 모서리 상자가 투명하다는 점을 제외하고는 모두 작동합니다.

UIView *loadingDataView = [[UIView alloc] initWithFrame:CGRectMake(0, 44, 320, 367)]; 
loadingDataView.alpha = 0.4; 
loadingDataView.backgroundColor = [UIColor clearColor]; 
UIView *viewWithSpinner = [[UIView alloc] initWithFrame:CGRectMake(110, 106, 100, 100)]; 
[viewWithSpinner.layer setCornerRadius:15.0f]; 
viewWithSpinner.backgroundColor = [UIColor blackColor]; 
UILabel *msg = [[UILabel alloc] initWithFrame:CGRectMake(5, 75, 90, 20)]; 
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(5, 5, 90, 70)]; 
spinner.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite; 
[spinner startAnimating]; 
msg.text = @"Data Loading"; 
msg.font = [UIFont systemFontOfSize:14]; 
msg.textAlignment = UITextAlignmentCenter; 
msg.textColor = [UIColor whiteColor]; 
msg.backgroundColor = [UIColor clearColor]; 
viewWithSpinner.opaque = NO; 
viewWithSpinner.backgroundColor = [UIColor blackColor]; 
[viewWithSpinner addSubview:spinner]; 
[viewWithSpinner addSubview:msg]; 
[loadingDataView addSubview:viewWithSpinner]; 
[self.view addSubview:loadingDataView]; 

감사 : 여기

내가 사용하고있는 코드입니다.

답변

3

문제에 대한 해결책은 당신이 당신의보기를 clearColor로 설정되어있는 경우이 정말 색상 아니다 (투명하여 라운드보기를 돌고 무엇, 0.4의 알파 속성을 제거해야한다는 것입니다, 그것은 단지보기를 만든다 투명 함) 0.4 알파를 추가하는 것은 의미가 없습니다. 당신이 원하는 것은 당신의 검은 색 둥근보기를 둘러싼 반투명보기 경우, 다음을 수행해야합니다 : 당신이 작동해야 좀 칙칙한 whiteish, 무언가를 줄 것이다

[loadingDataView setBackgroundColor:[UIColor colorWithRed:1 green:1 blue:1 andAlpha:0.4]]; 

.

그러나, 나는 당신이 소스 내 GitHub의에 대한 예제 응용 프로그램 얻을 수있는, 내가 개발 한 GIDAAlertView 클래스를 사용하도록 권장합니다 :

그것은 약 3 라인 소요 그것을 작동하세요 :

GIDAAlertView *spinnerAlert=[[GIDAAlertView alloc] initAlertWithSpinnerAndMessage:@"GIDAAlertView Spinner"]; 

//Show it ... 
[spinnerAlert presentAlertWithSpinner]; 

//Later in your code, hide it 
[spinnerAlert hideAlertWithSpinner]; 

이것은 어떻게 보입니까 like입니다.

+0

clearColor/alpha 설명 주셔서 감사합니다. –

6

질문에 대한 답변이 정확히 없지만 오픈 소스 MBProgressHUD을 확인하십시오. 그것은 개인 UIProgressHUD 클래스의 오픈 소스 대체품을 목표로하고 있으며, 정확히 당신이하려는 일입니다.

+0

Btw ... 나는 그것을 이것을 좋아한다! –

0
당신이 명확하게 그것을 말하고있다

...

loadingDataView.backgroundColor = [UIColor clearColor]; 

당신은 검은 색으로 무엇을 원하는가?

+0

배경색 (200x200 주위의 모든 부분)이 반투명 (.3의 알파)으로되어 있습니다. –

관련 문제