PullToRefresh

enum PullToRefresh

Associated Extensions

extension View
func pullToRefresh(scrollYOffset: Binding<CGFloat>, refresh: () async -> Void) -> some View

์Šคํฌ๋กค ๋ทฐ์— ํ’€-ํˆฌ-๋ฆฌํ”„๋ ˆ์‹œ(Pull-to-Refresh) ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • Parameters

    ParameterDescription
    scrollYOffset์Šคํฌ๋กค ๋ทฐ์˜ Y์ถ• ์˜คํ”„์…‹ ๋ฐ”์ธ๋”ฉ. ๋‹น๊น€ ์ •๋„๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    refresh๋ฆฌํ”„๋ ˆ์‹œ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋  ๋•Œ ์‹คํ–‰๋  ๋น„๋™๊ธฐ ํด๋กœ์ €์ž…๋‹ˆ๋‹ค.
  • Return Value

    ํ’€-ํˆฌ-๋ฆฌํ”„๋ ˆ์‹œ ๊ธฐ๋Šฅ์ด, ์ถ”๊ฐ€๋œ ๋ทฐ

  • Discussion

    ์‚ฌ์šฉ์ž๊ฐ€ ์Šคํฌ๋กค ๋ทฐ๋ฅผ ์•„๋ž˜๋กœ ๋‹น๊ธฐ๋ฉด ์• ๋‹ˆ๋ฉ”์ด์…˜๊ณผ ํ•จ๊ป˜ ๋ฆฌํ”„๋ ˆ์‹œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. iOS 18 ์ด์ƒ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋กœ๋”ฉ ์• ๋‹ˆ๋ฉ”์ด์…˜๊ณผ ํ•จ๊ป˜ ๋‹น๊น€ ์ •๋„์— ๋”ฐ๋ฅธ ์‹œ๊ฐ์  ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    Note

    iOS 18 ์ด์ƒ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    ScrollView๋Š” onRefresh(_:)๊ฐ€ ์ด ์ˆ˜์ •์ž๋ฅผ ๋Œ€์‹  ๋ถ™์—ฌ ์ฃผ๋ฏ€๋กœ, ์ง์ ‘ ๋ถ™์ด๋Š” ๊ฑด SwiftUI.ScrollView์ฒ˜๋Ÿผ ์˜คํ”„์…‹์„ ๋”ฐ๋กœ ์žฌ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

    @State private var scrollYOffset: CGFloat = 0
    
    SwiftUI.ScrollView {
        content
    }
    .onScrollGeometryChange(for: CGFloat.self) { geometry in
        -(geometry.contentOffset.y + geometry.contentInsets.top)
    } action: { _, newValue in
        scrollYOffset = newValue
    }
    .pullToRefresh(scrollYOffset: $scrollYOffset) {
        await loadData()
    }
    

ยฉ 2026 Wanted Lab, Inc.