lazy var hStackView : UIStackView = {
let ret = UIStackView()
ret.axis = .horizontal
ret.distribution = .equalSpacing
ret.alignment = .center
ret.spacing = 1
return ret
}()
TroubleShooting
스택뷰 버그 때문에 검색 하셨을 것 같다.
스크롤뷰 안에 스크롤뷰를 넣었을 때는 dummy UIView()를 생성하여 해당 뷰에 붙인 뒤 스크롤 뷰에 넣으니 버그가 나오지 않았다.
사용자 제스쳐(핀치 줌 인/아웃, 스크롤 등) 에 문제가 있어서 취한 조치였다.
스택뷰 아에 스택뷰를 넣고 또 그 안에 스택뷰를 넣은 후 그 안에서 아무리 그림을 그리더라도 UIView에 그리고 붙이면 아무런 문제가 나오지 않을거라 생각했다.
스택 뷰 안에 스택 뷰는 문제가 된다.
그래프가 같이 들어가는 경우 문제가 되더라. 화면에 나오지 않았다. add arrage는 안나오고 addsubview 는 잘 나오는 현상...
관련해서 인터넷 서핑도 많이 해봤지만 우선, 코드로만 여러번 중첩해서 쓰는 경우는 많지 않아서 아직은 안 쓰는게 낫다고 생각했다.
잘 되는 곳에서는 쓰고 아닌 곳에서는 안쓴다.
대안은?
빌더 패턴으로 UIView를 생성할 때 해당 view 내에서 y값만 증가시켜서 패널을 붙이는 빌더 패턴을 만들면 된다.
코드는?
func createPanels(s : jhScene, withHeightRatios: ratioNtype...) {
var panel : jhPanel<jhScene>? = nil
var y : CGFloat = 0.0
var vHeight : CGFloat = 0.0
"".pwd(self)
for rnt in withHeightRatios {
if(GS.s.logLevel.contains(.graphPanel)) { print("createPanels(withHeightRatios: CGFloat...)", rnt)}
assert(!(rnt.ratio < 0.1 || rnt.ratio > 10.0), "heightRation Range is 0.1~10.0")
vHeight = rnt.ratio * 0.1 * self.jhSceneFrameHeight
panel = jhGraphBuilder<jhScene>()
.type(rnt.type)
.frame(0, y, jhSceneFrameWidth*4, vHeight)
.scene(self)
.build()
y += vHeight
뭐 이런 식. 그래프 빌더가 호출 될 때마다 height 값을 증가시켜서 스택뷰처럼 보이게 만든다. height가 20 이고 이전 y 값이 0이었다면 그 다음 CGRect의 y값은 20, 또 붙이면 40... 이런 식.
jh = junho
'3D world > AI Deployment Engineer' 카테고리의 다른 글
:-1: Segmentation fault: 11 (0) | 2019.04.03 |
---|---|
딥러닝 환경 구축 중 (0) | 2019.02.07 |
gitlab clone error (0) | 2019.02.05 |
리팩토링 중 만난 몇 가지 상황 (0) | 2019.02.04 |
정부 기관 웹 페이지 에러 (0) | 2019.01.29 |
최근댓글