2012-05-27 2 views
0

ios 응용 프로그램을 구축 중입니다. 내 응용 프로그램에는 ImageView가 포함되어 있습니다. 주위에 하위보기를 추가하여 이미지보기 주위에 테두리를 만들었습니다. 각 하위 뷰의 고유 한 값은 (5,10,15,10)원본 크기의 배율을 조정하고 사용자 지정 테두리를 유지하는 방법은 무엇입니까?

사용자에게 슈퍼 뷰 이동, 회전 및 크기 조정 기능을 제공합니다. 현재 모든 눈금으로 인해 내 경계보기가 변경됩니다. 내부 이미지 주위의 테두리가 크기가 조정되지 않은 동일한 원본으로 유지되기를 바랍니다.

스크린 샷에서 알 수 있듯이 두 개의 UIView가 있습니다. 둘 다 동일한 그림자 테두리가 있습니다. (코드 참조) 첫 번째 것은 X 2로 축척됩니다. 결과는 축척 된 뷰뿐 아니라 축척 된 음영입니다. 내 질문은, 어떻게 볼 수있는, 그리고 그 그림자가 아닌 크기를 조정할 수 있습니다.

view.layer.MasksToBounds = false; 
    view.layer.ShadowColor = [[UIColor alloc] initWithRed:0 green:0 blue:0 alpha:0.5].CGColor; 
    view.layer.ShadowOpacity = 0.5f; 
    view.layer.shadowRadius = 1.0f; 
    view.layer.ShadowOffset = CGSizeMake(0, 2.5f); 
    UIBezierPath * depthShadowPath = [UIBezierPath bezierPath ]; 
    [depthShadowPath moveToPoint:CGPointMake(-border , -border) ]; 
    [depthShadowPath addLineToPoint:CGPointMake(view.frame.size.width + border , -border) ]; 
    [depthShadowPath addLineToPoint:CGPointMake(view.frame.size.width + border , view.frame.size.height + border) ]; 
    [depthShadowPath addLineToPoint:CGPointMake(-border , view.frame.size.height + border) ]; 
    [depthShadowPath addLineToPoint:CGPointMake(-border , -border) ]; 
    [view.layer setShadowPath:[depthShadowPath CGPath ] ]; 

enter image description here

어떻게

이 수행 할 수 있습니다?

+1

우리 스크린 샷을 추가 할 수 있습니까? 나는 당신이 말한 것을 근거로 내 머리 속에 2 가지 다른 것을 묘사하고 있는데, 실제로 어느 것이 당신의 프로젝트가 어떻게 설정되어 있는지를 알 수는 없다. – WendiKidd

+0

나는 당신이 당신의 경계를 어떻게 바꾸고 있는지에 달려 있다고 생각했을 것이다. 조회수 크기. autoResizing 마스크를 사용하고 있습니까? 값을 수동으로 설정하고 있습니까? WendiKidd가 제안했듯이, 아마도 코드를 조금 더보아야 할 것입니다. (또는 코드가 어떻게 움직이고 회전하는지, 수퍼 뷰를 스케일하는 방법에 대한 설명은 다른 방법이있을 수 있습니다. 솔루션이 다양 함). – Rob

+0

이 방법을 찾았습니까? – Andres

답변

0

보기가 다시 그려지지 않을 수도 있지만 메모리에 크기가 조정 된 것 같습니다. view.contentMode = UIViewContentModeRedraw을 설정하거나 [view setNeedsDisplay] 메시지를 보내 수동으로 강제로 다시 그리기를 시도하십시오.

+0

작동하지 않습니다 : ( – vondip

+0

불평하고 건설적인 도움을 downvoting 대신, 당신은 몇 가지 코드를 제공해야한다고 생각합니다. 당신은 당신이 스케일링 방법에 대해 아무것도 말하지 않습니다. 또한 다시 그리기 코드가 있는지 여부를 나타내지 않습니다. –

+0

당신이 맞습니다. 나는 대답을 downvoted해서는 안됩니다. 그것은 좋은 해결책을 제공하지 않았고 앞으로 다른 사람들이 혼란스러워하지 않기를 바랍니다. 5 시간 한도 초과시 백업 응답 upvote – vondip

관련 문제