小编Chr*_*ris的帖子

Swift - 英雄动画关闭视图

我在使用英雄库通过自定义动画来解雇我时遇到问题ViewController

最后,我希望拥有与该视频中几乎完全相同的动画:

首选解雇动画

到目前为止,我的解雇动画如下所示:

到目前为止我的解雇动画

我有 3 个我无法解决的主要问题:

1. 当展示/解散我的ViewController第二个背景时,似乎有这个白色背景ViewController,但我想用第二个背景覆盖我的第ViewController一个背景,而不需要任何白色视图。

2.image当用户开始在我的视图后面向下滑动后, 我的消失,而在视图实际关闭之前,它不应该改变其位置(首选关闭动画)。add-Button右下角的也是同样的情况。

3.就像在首选的关闭动画中一样,我的backgroundView(第二个视频中的浅灰色视图)应该比另一个更快地关闭subviews。我尝试使用cascade-modifier但无法达到这种效果。

这是我的第二个ViewController

 override func viewDidLoad() {
    super.viewDidLoad()

    self.wishlistBackgroundView.hero.isEnabled = true
    self.wishlistBackgroundView.heroID = "wishlistView"

    self.wishlistBackgroundView.hero.modifiers = [.fade, .translate(CGPoint(x: 0, y: 800), z: 20)]

    // adding panGestureRecognizer
    panGR = UIPanGestureRecognizer(target: self,
              action: #selector(handlePan(gestureRecognizer:)))
    view.addGestureRecognizer(panGR)

    self.wishlistLabel.text = wishList.name
    self.wishlistImage.image = wishList.image
    self.theTableView.wishList = wishList.wishData
    self.theTableView.tableView.reloadData()


    view.addSubview(wishlistBackgroundView) …
Run Code Online (Sandbox Code Playgroud)

animation uiviewcontroller ios uipangesturerecognizer swift

6
推荐指数
0
解决办法
1608
查看次数

Flutter Firebase 存储不起作用:没有默认存储桶

我正在尝试pdf-file使用Firebase-Storage此功能上传:

  static Future<String> savePdf({
    required Uint8List assetAsUint8List,
    required String fileName,
    required DocumentType documentType,
  }) async {
    String path =
        '${BackendService().keys.studs}/${AuthenticationService().currentUser?.uid}/${documentType.name}/$fileName';

    await FirebaseStorage.instanceFor().ref(path).putData(
          assetAsUint8List,
        );
    return FirebaseStorage.instance.ref(path).getDownloadURL();
  }
Run Code Online (Sandbox Code Playgroud)

但这失败了error

未处理的异常:[firebase_storage/no-bucket] 找不到默认存储桶。确保您已正确遵循入门指南。

configure的应用程序在我的里面是这样的main

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: kIsWeb || Platform.isAndroid
        ? FirebaseOptions(
            apiKey: "my-api-key",
            appId: "my-app-id",
            messagingSenderId: "my-messaing-sender-id",
            projectId: "appflug",
          )
        : null,
  );
  runApp(
    const App(),
  );
}
Run Code Online (Sandbox Code Playgroud)

它实际上可以在 iOS 上运行!但不适用于 Android 或 Web...

我遵循了文档,但它根本不起作用......我找不到任何对此有帮助的东西!

我在这里缺少什么?

如果您需要更多信息,请告诉我!

dart google-cloud-storage firebase flutter firebase-storage

6
推荐指数
1
解决办法
7664
查看次数

在 UITextfield 中定位“清除按钮”

有没有办法定位清除按钮?我想将其向下移动一点,以便与文本输入处于同一级别。有任何想法吗?

我的文本字段已经是另一个处理效果的类的子类。包括“clearButtonRect”功能不起作用。

@IBDesignable open class HoshiTextField: TextFieldEffects {

//effect functions..

    override open func clearButtonRect(forBounds bounds: CGRect) -> CGRect {
        return CGRect(x: 0, y: 0.2, width: 0.1, height: 0.3)
        }
    }`
Run Code Online (Sandbox Code Playgroud)

uitextfield ios swift

5
推荐指数
2
解决办法
1412
查看次数

如果 pushReplaceNamed,Flutter PageView 会崩溃

我有一个NavBar我通过 a 控制的Provider

class BottomNavBarProvider extends ChangeNotifier {
  final PageController navigationController = PageController(initialPage: 0);
  int selectedTabIndex = 0;

  BottomNavBarProvider() {}

  void selectTab(int index) {
    navigationController.jumpToPage(index);
    selectedTabIndex = navigationController.page?.round() ?? 0;
    notifyListeners();
  }
}
Run Code Online (Sandbox Code Playgroud)

问题: 我认为问题是我使用 aProvider来存储我的,PageContrller所以如果我推送到另一个页面,在那里BottomBar使用 ,它总是附加到来自提供者的同一个页面。所以我想我需要一种方法来正确disposePageController。但是我该怎么做呢?

我在我的内部使用它ApplicationContainer

class ApplicationContainer extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    initSizeService(context);

    return Scaffold(
      body: PageView(
        controller:
            Provider.of<BottomNavBarProvider>(context).navigationController,
        children: <Widget>[
          HomePage(),
          EntryPage(),
          VitalsHistoryPage(
            Provider.of<VitalsHistoryProvider>(context),
          ),
          SettingsPage(),
        ], …
Run Code Online (Sandbox Code Playgroud)

routes push dart flutter flutter-pageview

5
推荐指数
0
解决办法
180
查看次数

Flutter 忽略 pubspec.yaml 中的某些依赖项(仅适用于 Web)

我正在尝试将现有的 Flutter 应用程序迁移到网络。问题是某些 Web 包不存在(例如ObjectBox)。

我真的不想构建一个全新的项目,那么有没有办法排除网络的某些依赖项?找不到这方面的任何东西...

dart flutter flutter-dependencies flutter-web pubspec

5
推荐指数
0
解决办法
1404
查看次数

Flutter使Perspective Page View无限循环

我实现了这样perspective_page_view的。我将代码更新到新的 Flutter 版本,一切正常。

问题是我希望它PageView有一个无限循环

我尝试了在这个问题上找到的多种不同的解决方案,但没有一个有效。他们都搞乱了我的观点。

我觉得这应该是可能的,但我无法想出解决方案。为每一次帮助感到高兴!如果您需要更多信息,请告诉我!

最小可生产示例:

我的Scaffold

class ProjectsViewState extends State<ProjectsView>
    with TickerProviderStateMixin {
  late PageViewHolder holder;

  late PageController _controller;
  double fraction = 0.50;

  @override
  void initState() {
    super.initState();
    holder = PageViewHolder(value: 2.0);
    _controller = PageController(initialPage: 2, viewportFraction: fraction);
    _controller.addListener(() {
      holder.setValue(_controller.page);
    });
  }

  int currentPage = 2;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: ChangeNotifierProvider<PageViewHolder>.value(
          value: holder,
          child: Flexible(
            child: PageView.builder(
              controller: _controller,
              onPageChanged: (value) …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-pageview

5
推荐指数
1
解决办法
618
查看次数

在vscode中使用fvm更改flutter版本,但flutter版本不起作用?

我将fvm添加到我的项目中并像这样设置它。现在我可以运行所有命令,例如fvm use x.x.xfvm flutter pub get。一切正常。

但是,当直接通过 VSCode 运行应用程序(“播放”按钮或快捷方式)时,它始终使用我最新的安装 SDK 版本。为什么不从当前的 flutter 版本开始?

这是我的settings.json

  {
  "dart.flutterSdkPaths": [
    "/Users/usr/fvm/versions"
  ],
    // Remove .fvm files from search
    "search.exclude": {
      "**/.fvm": true
    },
    // Remove from file watching
    "files.watcherExclude": {
      "**/.fvm": true
    }
  }
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?如何配置fvm 才能与 VSCode 一起正常工作

dart visual-studio-code flutter fvm

4
推荐指数
1
解决办法
5926
查看次数

自定义结构:类型不符合“可解码”协议

我希望能够保存一个Custom-struct toUserDefaults但为此我需要它是Codable.. 我试过这样的:

struct Wishlist: Codable {
var name: String
var image: UIImage
var wishData: [Wish]
var color: UIColor
var textColor: UIColor
var index: Int
}
Run Code Online (Sandbox Code Playgroud)

但这给了我这个error

“愿望清单”类型不符合“可解码”协议

这是我的Class Wish,也许这就是问题所在:

class Wish: NSObject {
public var wishName : String?
public var checkedStatus : Bool?
public var wishLink : String?
public var wishPrice : String?
public var wishNote : String?
public var wishImage : UIImage?

init(withWishName name: String, link: String, price: String, …
Run Code Online (Sandbox Code Playgroud)

struct ios swift codable

3
推荐指数
1
解决办法
6675
查看次数

在项目和共享扩展之间共享数据

我想在我Main Project和我的之间共享数据Share Extension。这就是我所做的:

1.Project在&中启用应用程序组Share Extension

2.将数据保存在Project里面viewDidLoad(工作正常,我测试过):

DataHandler.getWishlists { (success, dataArray, dropOptionsArray)  in
        if success && dataArray != nil {
            self.shouldAnimateCells = true
            self.dataSourceArray = dataArray as! [Wishlist]
            self.theCollectionView.isHidden = false
            self.theCollectionView.reloadData()
            self.dropOptions = dropOptionsArray as! [DropDownOption]
            self.addButton.isEnabled = true
            self.activityIndicator.stopAnimating()

            // save dataSourceArray in UserDefaults
            if let defaults = UserDefaults(suiteName: UserDefaults.Keys.groupKey) {
                defaults.setDataSourceArray(data: dataArray as! [Wishlist])
                defaults.synchronize()
            } else {
                print("error Main")
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

3.检索数据Share …

nsuserdefaults ios swift ios8-share-extension

3
推荐指数
1
解决办法
533
查看次数

多个目标匹配链接器标志的隐式依赖

这是我得到的完整警告:

多个目标匹配链接器标志“-framework GTMSessionFetcher”的隐式依赖项。考虑添加对预期目标的显式依赖以解决这种歧义。(在“愿望清单”项目的目标“愿望清单”中)

这是什么原因,我该如何解决?这也会导致错误。

我有一个主应用程序和一个 ShareExtension。

这是我的podfile

# Uncomment the next line to define a global platform for your project
platform :ios, '13.0'

target 'Wishlists' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Wishlists

    pod 'Firebase/Analytics'
    pod 'Firebase/Auth'
    pod 'Firebase/Core'
    pod 'Firebase/Firestore'
    pod 'Firebase/Database'
    pod 'Firebase/Crashlytics'
    pod 'Firebase/Analytics'
    #pod 'TextFieldEffects'
    pod 'Hero'
    pod 'RevealingSplashView'
    pod 'LBTAComponents'
    pod 'lottie-ios'
    pod 'SwiftEntryKit', '1.2.3'
    pod 'FBSDKCoreKit'
    pod 'FBSDKShareKit'
    pod …
Run Code Online (Sandbox Code Playgroud)

xcode ios cocoapods swift

3
推荐指数
1
解决办法
3998
查看次数