반응형
swift는 subview를 추가하여 제거합니다.
나는 탭 한 번으로 서브뷰를 추가하고 제거하고 싶습니다.이게 내 암호입니다.
하위 보기 추가하기
var testView: UIView = UIView(frame: CGRectMake(0, 0, 320, 568))
testView.backgroundColor = UIColor.blueColor()
testView.alpha = 0.5
testView.tag = 100
super.view.userInteractionEnabled = false
self.view.userInteractionEnabled = true
self.view.addSubview(testView)
하위 보기 제거하기
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
let touch = touches.anyObject() as UITouch
let point = touch.locationInView(self.view)
if(testView.tag==100){
println("Tag 100")
testView.removeFromSuperview()
}
else{
println("tag not found")
}
}
하지만 제거가 잘 되지 않습니다.
도와주셔서 감사합니다.이것이 해결책입니다.하위 보기를 만들었고 제거하기 위한 제스처를 추가합니다.
@IBAction func infoView(sender: UIButton) {
var testView: UIView = UIView(frame: CGRectMake(0, 0, 320, 568))
testView.backgroundColor = UIColor.blueColor()
testView.alpha = 0.5
testView.tag = 100
testView.userInteractionEnabled = true
self.view.addSubview(testView)
let aSelector : Selector = "removeSubview"
let tapGesture = UITapGestureRecognizer(target:self, action: aSelector)
testView.addGestureRecognizer(tapGesture)
}
func removeSubview(){
println("Start remove sibview")
if let viewWithTag = self.view.viewWithTag(100) {
viewWithTag.removeFromSuperview()
}else{
println("No!")
}
}
업데이트:
스위프트 3+
@IBAction func infoView(sender: UIButton) {
let testView: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 568))
testView.backgroundColor = .blue
testView.alpha = 0.5
testView.tag = 100
testView.isUserInteractionEnabled = true
self.view.addSubview(testView)
let aSelector : Selector = #selector(GasMapViewController.removeSubview)
let tapGesture = UITapGestureRecognizer(target:self, action: aSelector)
testView.addGestureRecognizer(tapGesture)
}
func removeSubview(){
print("Start remove sibview")
if let viewWithTag = self.view.viewWithTag(100) {
viewWithTag.removeFromSuperview()
}else{
print("No!")
}
}
당신은 사용해야 합니다.viewWithTag
주어진 뷰를 찾는 함수tag
.
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
let touch = touches.anyObject() as UITouch
let point = touch.locationInView(self.view)
if let viewWithTag = self.view.viewWithTag(100) {
print("Tag 100")
viewWithTag.removeFromSuperview()
} else {
print("tag not found")
}
}
콘센트나 프로그램 코드를 통해 액세스할 수 있다고 가정하면 보기를 참조하여 제거할 수 있습니다.foo
그리고.removeFromSuperview
방법
foo.removeFromSuperview()
사용자 지정 CollectionViewCell 내부에 보기가 있으며 해당 보기에 그래프가 포함되어 있습니다.새로 고침을 하려면 해당 보기에 이미 그래프가 있는지 확인하고 제거한 후 새로 적용해야 합니다.해결책은 이렇습니다.
cell.cellView.addSubview(graph)
graph.tag = 10
이제 제거할 코드 블록에서(제스처 Recognizer Function의 경우)
if let removable = cell.cellView.viewWithTag(10){
removable.removeFromSuperview()
}
그것을 다시 심다
cell.cellView.addSubview(graph)
graph.tag = 10
XCode 8과 Swift 3을 사용하여 이 코드를 테스트했습니다.
SuperView에 Custom View를 추가하려면 다음을 사용합니다.
self.view.addSubview(myView)
Superview에서 Custom View를 제거하려면 다음을 사용합니다.
self.view.willRemoveSubview(myView)
언급URL : https://stackoverflow.com/questions/28197079/swift-addsubview-and-remove-it
반응형
'programing' 카테고리의 다른 글
JQuery event.preventDefault()가 설정된 경우 window.open에 팝업 차단 무시 (0) | 2023.10.23 |
---|---|
Flower : 플레이 스토어용 버전 코드 업그레이드 (0) | 2023.10.23 |
각지지 않은 페이지 내에 각지지 않은 2가지 구성요소 분사 (0) | 2023.10.23 |
pandas데이터프레임 다중 인덱스에서 열 선택 (0) | 2023.10.23 |
문자열의 마지막 4자를 얻는 방법은? (0) | 2023.10.23 |