sourcetip

UI 보기에 패딩 추가

fileupload 2023. 8. 16. 22:33
반응형

UI 보기에 패딩 추가

추가할 방법을 찾고 있습니다.paddingUIV 뷰의 속성입니다.이상적으로는 하위 분류를 피하고 범주에 포함시키고 싶습니다.용도는 다음과 같습니다.

myview.padding = UIEdgeInsetsMake(10, 10, 10, 10);

그리고 아마도.paddingBoxa를 반환할 수 있는 재산도.CGRect내부 패딩 박스의 크기와 위치를 설명합니다.

자, 그런 종류의 것을 어떻게 구현할 수 있을까요?처음에는 사용하려고 생각했습니다.bounds하지만 불행하게도 그 크기는bounds의 크기와 연결되어 있습니다.frame(항상 동일) 좌표만 다를 수 있습니다.

이 작업은 일반적으로 뷰 내에서 경계를 설정하여 수행됩니다.그래서 만약 당신이 전체적으로 10개의 삽입물을 원한다면 당신은 할 수 있습니다:

view.bounds = CGRectInset(view.frame, 10.0f, 10.0f);

경계는 프레임을 기준으로 뷰의 그릴 수 있는 영역을 정의합니다.그래서 이것은 사실상 패딩을 줄 것입니다.그런 다음 경계에서 '패딩 박스'를 얻을 수 있습니다.

이것이 도움이 되길 바랍니다! :)

Swift 5+의 업데이트, 그것은

view.bounds = view.frame.insetBy(dx: 10.0, dy: 10.0);

스위프트 3용 업데이트

view.bounds = view.frame.insetBy(dx: 10.0, dy: 10.0)

:)

업데이트: iOS11부터 사용해야 합니다.directionalLayoutMargins대신에layoutMargins.

출처: https://developer.apple.com/documentation/uikit/uiview/1622566-layoutmargins?language=objc

iOS 8 이후로, 각 보기는 이제layoutMargins패딩에 해당하는 속성입니다.

myview.layoutMargins = UIEdgeInsetsMake(10, 10, 10, 10);

AutoLayout을 사용하는 경우 다음과 같은 형식을 사용합니다.|-[subview]-|,|-로 정의된 에지를 참조합니다.layoutMargins.

출처: https://developer.apple.com/reference/uikit/uiview/1622566-layoutmargins?language=objc

alignmentRectInsets 속성을 재정의할 수 있습니다.Swift 4의 예는 다음과 같습니다.

class YourCustomView: UIView {

    override var alignmentRectInsets: UIEdgeInsets {
        return UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
    }
}

정말로 해야 할 일은 보기를 만들고 하위 보기를 추가하는 것입니다.배경을 한 번 보고 원하는 프레임을 지정합니다.그런 다음 두 번째 하위 뷰를 모서리를 세트로 하여 원하는 프레임으로 만듭니다.

UIView backgroundView = new UIView(CGRect.FromLTRB(0, 0, 100, 100))
{
    BackgroundColor = backgroundGray,
};

//Will have a right edge inset of 10
UIView edgyView = new UIView(CGRect.FromLTRB(0, 0, 90, 100))
{
    BackgroundColor = backgroundGray,
}

backgroundView.AddSubview(edgyView);

Swift 4에 대한 업데이트:

self.yourView.layoutMargins = UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8)

다음과 같이 뷰의 프레임/경계를 삽입할 수 있습니다.

    yourView.frame = yourView.frame.inset(by: UIEdgeInsets(top: .zero, left: 5.0, bottom: 5.0, right: .zero)

언급URL : https://stackoverflow.com/questions/14856821/adding-padding-to-an-uiview

반응형