이 질문을 할 수있는 적합한 곳인지 여부는 잘 모르겠습니다.이미지의 일부는 iOS에서 클릭 가능합니다.
UIImageView에서 표시 할 때 이미지가 있습니다. 이 이미지보기는 전체 화면을 사용합니다. 이미지에는 페이 스북, 트위터 및 이메일 버튼이 있습니다 (실제로는 버튼이 아니라 이미지로 디자인되었습니다).
나는 페이스 북, 트위터 및 이메일 "버튼"을 탭핑 할 수있게하고 무언가를하고 싶습니다. 이것이 가능한가?
이 질문을 할 수있는 적합한 곳인지 여부는 잘 모르겠습니다.이미지의 일부는 iOS에서 클릭 가능합니다.
UIImageView에서 표시 할 때 이미지가 있습니다. 이 이미지보기는 전체 화면을 사용합니다. 이미지에는 페이 스북, 트위터 및 이메일 버튼이 있습니다 (실제로는 버튼이 아니라 이미지로 디자인되었습니다).
나는 페이스 북, 트위터 및 이메일 "버튼"을 탭핑 할 수있게하고 무언가를하고 싶습니다. 이것이 가능한가?
올바른 방법으로 수행하지 않습니다.
대부분의 경우 논리적 구성 요소가 많으며 각 구성 요소마다 고유 한 동작 (애니메이션/태핑 가능/편집 가능 구성 요소)이 있습니다. 서로 다른 논리 구성 요소마다 다른 요소를 배치해야합니다.
귀하의 경우 배경으로 전체 화면 UIImageView
을 설정하고 텍스트에 UILabel
초를 추가하십시오 (텍스트가 영향을주지 않으면 제외시킬 수 있습니다. 그게 내가 미래에 더 융통성있는 방식으로 선호하기 때문에). 그 중에서도 Facebook 및 twitter 버튼과 같이 탭 가능한 요소에 UIButton
을 추가 할 수 있습니다.
편집 : A와 같은 투명 UIButton
추가
1) : 당신은 그냥 별도의 이미지를 만들기 싫어하면, 당신은 항상 보이지 않는 버튼 (텍스트없이 버튼) 각 버튼에 대한
확인. 이것은 좋은 것 같습니다. 그래서 배경 이미지와 버튼을위한 이미지를 하나씩 만들고 UIButtons를 사용합니다. – Siddharth
@Siddharth 예. 이것은 내가하는 일이며 나는 다른 사람들이하는 일이라고 믿습니다. Apple이 세 번째 화면 크기를 만드는 소문 (또는 사실)을 고려할 때 이러한 요소를 분리하면 다른 화면에 적용 할 때 훨씬 쉽게 작업을 수행 할 수 있습니다. –
touchesEnded:withEvent:
메서드를 구현하고 터치 위치가 이미지에서 원하는 단추의 사각형 내에 있는지 확인하십시오.
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesEnded:touches withEvent:event];
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self.view];
if (CGRectContainsPoint(_facebookButtonRect, location))
{
// Do your stuff.
}
}
이미지보기 상단에 보이지 않는 버튼을 배치 할 수도 있습니다.
을 만들 수 있습니다 이미지보기로 하위보기. 프레임을 설정하여 이미지 위에 놓습니다. 버튼에 alpha=1
및 backgroundColor = [UIColor clearColor]
을 사용하십시오. 또한 버튼 제목을 ""로 설정하십시오. 이 모든 것은 당신에게 여전히 터치에 반응하는 보이지 않는 버튼을 주어야합니다.
2) 평상시와 마찬가지로 버튼 탭 이벤트를 처리합니다.
두 가지 방법 : 1) reecon에서 설명한대로 touchesEnded를 사용하고 "dead reckoning"으로 접촉을 찾습니다. 2) 투명 버튼을 이미지 위에 배치하고 다른 버튼과 같이 사용합니다. –