// // Copyright (c) 2023 Touch Instinct // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the Software), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // import TIUIKitCore import UIKit extension WrappedViewLayout { func setupSize(widthConstraint: NSLayoutConstraint?, heightConstraint: NSLayoutConstraint?) { if size.width.isFinite { widthConstraint?.constant = size.width widthConstraint?.isActive = true } else { widthConstraint?.isActive = false } if size.height.isFinite { heightConstraint?.constant = size.height heightConstraint?.isActive = true } else { heightConstraint?.isActive = false } } func setupCenterYOffset(centerYConstraint: NSLayoutConstraint?, topConstraint: NSLayoutConstraint?, bottomConstraint: NSLayoutConstraint?) { let centerYOffset = centerOffset.vertical if centerYOffset.isFinite { centerYConstraint?.constant = centerYOffset centerYConstraint?.isActive = true topConstraint?.isActive = false bottomConstraint?.isActive = false } else { topConstraint?.constant = insets.top bottomConstraint?.constant = -insets.bottom centerYConstraint?.isActive = false topConstraint?.isActive = true bottomConstraint?.isActive = true } } func setupCenterXOffset(centerXConstraint: NSLayoutConstraint?, leadingConstraint: NSLayoutConstraint?, trailingConstraint: NSLayoutConstraint?) { let centerXOffset = centerOffset.horizontal if centerXOffset.isFinite { centerXConstraint?.constant = centerXOffset centerXConstraint?.isActive = true leadingConstraint?.isActive = false trailingConstraint?.isActive = false } else { leadingConstraint?.constant = insets.left trailingConstraint?.constant = -insets.right centerXConstraint?.isActive = false leadingConstraint?.isActive = true trailingConstraint?.isActive = true } } }