কেন নেভিগেশনের পরে ফর্ম পুনঃস্থাপনে সুইফটআইআই চয়নকারী?


12

পিকারটি ক্লিক করার পরে এটি নির্বাচন করা ভিউতে নেভিগেট করে। আইটেম তালিকাটি উপরে থেকে খুব দূরে রেন্ডার করা হয়, তবে অ্যানিমেশন শেষ হওয়ার পরে স্ন্যাপ হয়ে যায়। ইহা কি জন্য ঘটিতেছে?

ডেমো: https://gfycat.com/idioticdizzyazurevase

নেভিগেশন বারের শিরোনাম এবং বোতামগুলি, ফর্ম বিভাগগুলি এবং অন্যান্য বিশদটি বাতিল করতে আমি ইতিমধ্যে একটি সর্বনিম্ন উদাহরণ তৈরি করেছি:

import SwiftUI

struct NewProjectView: View {

    @State var name = ""

    var body: some View {
        NavigationView {
            Form {
                Picker("Client", selection: $name) {
                    Text("Client 1")
                    Text("Client 2")
                }
            }
        }
    }
}

struct NewProjectView_Previews: PreviewProvider {
    static var previews: some View {
        NewProjectView()
    }
}

এটি পূর্বরূপ মোড, সিমুলেটর এবং ডিভাইসে ঘটে (এক্সকোড 11.2, সিমুলেটারে আইওএস 13.2, ডিভাইসে 13.3 বিটা 1)।


ইউটিউবে একটি সাম্প্রতিক ভিডিও রয়েছে যা সুইফ্টইউআইতে মৌলিক রূপগুলি দেখায়, এটি সেখানে কাজ করছে, তাই আমি অনুমান করি যে এটি নিজেই সুইফটুইতে কোনও বাগ নেই: youtu.be/Ho88Eid9gi0?t=573
Koraktor

একই সমস্যা - খুব বিরক্তিকর। আপনি যদি এনএভি বারের জন্য ইনলাইন স্টাইল ব্যবহার করেন তবে এটি চলে যায়।
ডগকফি

3
... কোষগুলিতে থাকা
পাঠ্যটিও

2
@ ডগকফি: ইনসেটগুলি পরিবর্তনের জন্য আমি অনুভূমিক জাম্পটি ডিবাগ করেছি। এগুলি সুস্পষ্টভাবে তাদের সাথে সেট করে স্থির করা যেতে পারে .listRowInsets()
Koraktor

অনেক প্রশংসা, দুর্দান্ত কাজ করে।
ডগকফি

উত্তর:


6

নেভিগেশন ভিউ স্টাইলকে স্ট্যাক করতে বাধ্য করার সময় স্পষ্টত বগী আচরণটি কাজ করা যেতে পারে:

NavigationView {}.navigationViewStyle(StackNavigationViewStyle())

এটি আমার সমস্যার সমাধান, তবে আমি এটি গ্রহণযোগ্য উত্তর হিসাবে চিহ্নিত করব না (এখনও))

  1. এটি একটি ত্রুটি বলে মনে হচ্ছে, এমনকি এটি বিশেষ পরিস্থিতির দ্বারা ট্রিগার হতে পারে।
  2. আপনার অন্য নেভিগেশন দর্শন শৈলীর প্রয়োজন হলে আমার সমাধান কাজ করবে না।
  3. অতিরিক্তভাবে, এটি মন্তব্যগুলিতে ডগকফির দ্বারা উল্লিখিত অনুভূমিক অবস্থান নির্ধারণ করবে না।

আপনার অ্যাপ্লিকেশনগুলি আইপ্যাডে চলতে থাকলে এটি দরকারী, অন্যথায় আপনার মডেল ভিউগুলি মাস্টার হিসাবে উপস্থিত রয়েছে - বিশদ বিভাজন দৃশ্য।
ডগকফি

2

আমার মতে, এটি নেভিগেশন বারের সাথে কিছু করার আছে। ডিফল্ট ( .navigationBarTitleএক্সটেনশনের কোনও উল্লেখ নেই ) এ, নেভিগেশন ডিসপ্লে মোড সেট করা থাকে .automatic, এটিতে সংশোধন করা উচিত .inline। আমি এর অনুরূপ অন্য একটি পোস্ট জুড়ে এসেছি এবং আপনার সমাধানটি আপনার সাথে একত্রিত করতে ব্যবহার করে .navigationBarTitle("", displayMode: .inline)সাহায্য করা উচিত।

import SwiftUI

struct NewProjectView: View {

    @State var name = ""

    var body: some View {
        NavigationView {
            Form {
                Picker("Client", selection: $name) {
                    Text("Client 1")
                    Text("Client 2")
                }
            }
            .navigationBarTitle("", displayMode: .inline)
        }
    }
}


struct NewProjectView_Previews: PreviewProvider {
    static var previews: some View {
        NewProjectView()
    }
}

এটি ইস্যুটি ঘিরে কাজ করে, তবে এটি শিরোনামের শৈলীতেও পরিবর্তন করে যা আমার ক্ষেত্রে পছন্দসই নয়।
Koraktor

2

আইপ্যাডগুলির জন্য ডাবল কলাম নেভিগেশনভিউ স্টাইল ধরে রাখার সময় এই বাগটি এই সমস্যাটি ঘিরে কাজ করার অন্য কোনও উপায় সমাধান না করা পর্যন্ত শর্তসাপেক্ষে that স্টাইলটি সেট করা হবে:

let navView = NavigationView {}
if UIDevice.current.userInterfaceIdiom == .pad {
    return AnyView(navView.navigationViewStyle(DoubleColumnNavigationViewStyle()))
} else {
    return AnyView(navView.navigationViewStyle(StackNavigationViewStyle()))
}

0

এই থ্রেডের জন্য সবাইকে ধন্যবাদ! সত্যই আমাকে আরও জিনিস বুঝতে এবং আমার সমস্যার একটি ধরে রাখতে সহায়তা করেছে। অন্যের সাথে ভাগ করে নেওয়ার জন্য, আমার এই সমস্যাটি ছিল তবে আমি টগল সহ একটি বিভাগে যদি / অন্য বিবৃতিতে সেট করার জন্য একটি বিভাগ সেট করার সময়ও আমার এই সমস্যাটি ছিল। টগলটি সক্রিয় হওয়ার সাথে সাথে বিভাগের শিরোনামটি অনুভূমিকভাবে কয়েক পিক্সেল স্থানান্তরিত হবে।

নিম্নলিখিতটি আমি এটি স্থির করেছি

Section(header: Text("Subject Identified").listRowInsets(EdgeInsets()).padding(.leading)) {
                Picker(selection: $subIndex, label: Text("Test")) {
                    ForEach(0 ..< subIdentified.count) {
                        Text(self.subIdentified[$0]).tag($0)
                    }
                }
            .labelsHidden()
            .pickerStyle(SegmentedPickerStyle())

আমার চয়নকারী নির্বাচন দৃশ্যে এখনও আমার অনুভূমিক শিফট রয়েছে এবং কীভাবে ঠিক করবেন তা নিশ্চিত নই। আমি ইনপুট প্রাপ্ত করতে অন্য থ্রেড তৈরি করেছি। আবার ধন্যবাদ! SwiftUI শিফ্ট পিকারের পাঠ্য অনুভূমিক

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.