小编Ari*_*iel的帖子

如何将图像置于UIButton内部而不在Swift中向两个方向拉伸?

我正在制作一个自定义键盘,我需要将移位图标的图像置于移位按钮内.图像为100px x 100px.

然而,纵向中的按钮框架是36pt x 38pt,并且在横向中,它是68pt x 32pt.我尝试使用按钮图像插入属性来居中图像.但是,它没有这样做.

我试着自己设置图像边缘插图(25,25,25,25),图像以两种尺寸为中心.但是,图标变得太小而无法看到.

shiftButton.setImage(UIImage(named: "shift"), forState: .Normal)

shiftButton.imageEdgeInsets = UIEdgeInsetsMake(0,0,0,0)
Run Code Online (Sandbox Code Playgroud)

我以编程方式制作按钮.并且,我需要按钮来保持其纵横比,即1:1.它的最大宽度或高度始终与按钮的高度本身相关联.图像宽度/高度应该是按钮高度的最大值.并且,它不应该以任何方式扭曲图标.但是,按钮本身可以伸展.

我需要根据按钮框架缩放图像,但保持其纵横比.并且,它可以缩小或缩放,但应始终保持1:1的宽高比.

有什么建议可以解决这个问题?

uibutton uiimage ios swift

24
推荐指数
4
解决办法
2万
查看次数

如何使UICollectionView的中心单元与位于侧面的其他两个单元重叠?

我正在制作一个集合视图来生成轮播效果.

我需要中心单元格与左侧和右侧的其他两个单元格重叠.中心单元需要始终位于顶部.

但是,当我尝试将侧面的细胞与中心的细胞重叠时,它不起作用.相反,右侧单元格(蓝色单元格)与中心单元格(黑色单元格)重叠,如下图所示.

在此输入图像描述

使用的代码是针对此效果如下:

以下是集合视图的视图控制器.

import UIKit

private let reuseIdentifier = "Cell"
let kRoomCellScaling: CGFloat = 0.6

class RoomsViewController: UICollectionViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    // This method sets up the collection view
    let layout = UPCarouselFlowLayout()
    layout.itemSize = CGSizeMake(250, 250)
    layout.scrollDirection = .Horizontal

    layout.sideItemAlpha = 1
    layout.sideItemScale = 0.8
    layout.spacingMode = UPCarouselFlowLayoutSpacingMode.overlap(visibleOffset: 60)

    collectionView?.setCollectionViewLayout(layout, animated: false)

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}



// MARK: UICollectionViewDataSource

override func numberOfSectionsInCollectionView(collectionView: …
Run Code Online (Sandbox Code Playgroud)

carousel ios uicollectionview swift

7
推荐指数
1
解决办法
2172
查看次数

Flutter - 应用程序关闭时不会出现 FCM 消息

我使用 FCM 和 Flutter 本地通知来接收消息。Flutter 本地通知用于在应用程序位于前台时显示通知。目前,我使用的是 Android 12 (Poco X3 PRO)。

当我终止应用程序并从 Firebase 控制台发送消息时,以下消息将显示在 logcat 中。

2022-07-26 07:40:16.751 11370-11370/? W/GCM: broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10000000 pkg=au.org.nrna.test.app (has extras) }
Run Code Online (Sandbox Code Playgroud)

我已经检查了此处链接的 firebase 云消息传递文档,但是没有提及终止状态下的消息处理。

同样,当应用程序位于前台时,该消息仅显示在通知托盘中。它根本不显示在屏幕上。

文件: main.dart

import 'dart:async';
import 'dart:convert';
import 'dart:isolate';

import 'package:device_preview/device_preview.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_local_notifications/flutter_local_notifications.dart';

import 'core/apps/app.dart';
import 'core/apps/device_preview_app.dart';
import 'core/bloc_observers/bloc_observer.dart';
import 'core/config_reader/config_reader.dart';
import 'core/injections/injections.dart';
import 'core/routes/app_router.gr.dart';

final appRouter = AppRouter();

void main() async …
Run Code Online (Sandbox Code Playgroud)

android flutter firebase-cloud-messaging flutter-local-notification

7
推荐指数
2
解决办法
8079
查看次数

如何在构建设备时只包含框架,而不是iOS模拟器?

我们正在使用第三方推送通知框架,该框架尚未针对x86_64进行编译,这意味着每当我们为模拟器构建时,我们都会收到构建警告.由于我们试图将警告视为错误,因此不会这样做.

我想在构建设备时只包含这个框架.然后我只会编译在设备上使用它的代码.

它可以实现吗?

xcode frameworks ios

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

在Swift iOS 9.3中检查速度是否较慢(不仅仅是设备是否已连接)

互联网连接速度非常慢时,我在处理该案件时遇到了一些麻烦。首先,让我解释一下。当设备未连接到Internet时,我可以处理以下功能:

public class Reachability
{
    class func isConnectedToNetwork() -> Bool
    {
        var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0))
        zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
        zeroAddress.sin_family = sa_family_t(AF_INET)

        let defaultRouteReachability = withUnsafePointer(&zeroAddress) {
            SCNetworkReachabilityCreateWithAddress(kCFAllocatorDefault, UnsafePointer($0))
        }

        var flags: SCNetworkReachabilityFlags = SCNetworkReachabilityFlags(rawValue: 0)
        if SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) == false {
            return false
        }

        let isReachable = flags == .Reachable
        let needsConnection = flags == .ConnectionRequired

        return isReachable && !needsConnection
    }
Run Code Online (Sandbox Code Playgroud)

因此,当设备连接到Internet且连接快速稳定时,一切正常。当设备未连接到Internet时,我会收到警告,我需要连接并且也得到了处理。

问题是,当我连接并且互联网非常缓慢时,例如16 …

ios swift alamofire

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

在swift按钮上打开新屏幕

我是新手swift iOS.在我的故事板中,我创建了一些动态字段viewController.已从对象库创建了一个按钮.

现在,我需要在单击此按钮后打开一个新的空白屏幕.在新屏幕中,会有一些输入字段.我将通过编程或对象库创建它们.

但是我无法打开空屏幕.

@IBAction func SaveTgw(sender: AnyObject) {
    print("test=====")

}
Run Code Online (Sandbox Code Playgroud)

我需要在其中包含屏幕打开代码SaveTgw.任何帮助或任何描述性教程链接将不胜感激....

ios swift

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

如何在 CentOS 7/8 上信任自签名 SSL?

我在本地主机上使用 nginx 的自签名证书。我正在使用 OpenSSL 最新版本来执行此操作。这是配置文件。

localhost.conf

[req]
default_bits       = 2048
default_keyfile    = localhost.key
distinguished_name = req_distinguished_name
req_extensions     = req_ext
x509_extensions    = v3_ca

[req_distinguished_name]
countryName                 = Country Name (2 letter code)
countryName_default         = US
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = Rochester
localityName                = Locality Name (eg, city)
localityName_default        = Rochester
organizationName            = Organization Name (eg, company)
organizationName_default    = localhost
organizationalUnitName      = organizationalunit
organizationalUnitName_default = Development
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_default          = …
Run Code Online (Sandbox Code Playgroud)

ssl openssl centos7

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

使用 FutureProvider RiverPod 组合 FutureProvider

我目前正在 Flutter 中制作 Udacity Sunshine 项目。我有两个不同的提供商来获取当前温度和每日预报。

我想合并这两个提供程序并创建一个名为weatherProvider 的新的单一提供程序。

文件:weather_data.dart

import 'package:app/models/current_weather_data.dart';

import 'one_call_weather_data.dart';

class WeatherData {
  final OneCallWeatherData oneCallWeatherData;
  final CurrentWeatherData currentWeatherData;

  WeatherData({
    required this.oneCallWeatherData,
    required this.currentWeatherData,
  });
}
Run Code Online (Sandbox Code Playgroud)

文件:weather_provider.dart

import 'package:app/models/current_weather_data.dart';
import 'package:app/models/one_call_weather_data.dart';
import 'package:app/services/weather.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';

var oneCallWeatherProvider = FutureProvider<OneCallWeatherData>((ref) async {
  return await WeatherService.getOneCallWeatherData();
});

var currentWeatherProvider = FutureProvider<CurrentWeatherData>((ref) async {
  return await WeatherService.getCurrentWeatherData();
});

final weatherProvider = FutureProvider<WeatherData>((ref) async {
  final currentWeatherData = ref.watch(currentWeatherProvider);

  final onecallWeatherData = ref.watch(oneCallWeatherProvider);

 // How to return WeatherData here??
});
Run Code Online (Sandbox Code Playgroud)

在上面的提供程序中,我尝试从两个未来的提供程序获取数据并获取 …

future dart flutter flutter-provider riverpod

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

无法使用冻结包为泛型生成 fromJson() 和 toJson()

我们正在尝试创建一个通用的 Category 类。目前,我们不确定类别是否以整数或 UUID 作为键。因此,我们现在需要 id 是通用的。一切正常。但是,我们无法使用该freezed包生成 fromJson() 和 toJson()。

\n
import \'package:freezed_annotation/freezed_annotation.dart\';\n\npart \'category.freezed.dart\';\npart \'category.g.dart\';\n\n@freezed\n@JsonSerializable(genericArgumentFactories: true)\nclass Category<T> with _$Category<T> {\n  factory Category({\n    required T id,\n    required String name,\n    required String imageUrl,\n  }) = _Category;\n\n  factory Category.fromJson(Map<String, dynamic> json) =>\n      _$CategoryFromJson(json);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

错误:

\n
Could not generate `fromJson` code for `id` because of type `T` (type parameter).\nTo support type parameters (generic types) you can:\n* Use `JsonConverter`\n  https://pub.dev/documentation/json_annotation/latest/json_annotation/JsonConverter-class.html\n* Use `JsonKey` fields `fromJson` and `toJson`\n  https://pub.dev/documentation/json_annotation/latest/json_annotation/JsonKey/fromJson.html\n  https://pub.dev/documentation/json_annotation/latest/json_annotation/JsonKey/toJson.html\n* Set `JsonSerializable.genericArgumentFactories` to `true`\n …
Run Code Online (Sandbox Code Playgroud)

generics dart flutter json-serializable freezed

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

java.lang.IllegalStateException 您需要在此活动中使用 Theme.AppCompat 主题(或后代)

问候我的开发人员朋友!

我创建了一个演示应用程序来测试 minSdk 14 和 targetSdj 23 的材料设计。我在下面有以下文件。它在 21 API 下工作正常。我相信罪魁祸首是Styles-v21.xml,因为该应用程序在此之前运行良好。

它的设置很简单,只有一项活动。我正在测试 Material 主题和 AppCompat 主题以处理以下场景。

  1. 21 以下 API 的 Theme.AppCompat。
  2. API 21 和 21+ 的主题.Material。

该应用程序在 API 21 以下运行良好,但在 21+ 以上应用程序崩溃,说“不幸的是 materialTest 已停止。”

错误如下:

FATAL EXCEPTION: main
        Process: net.slidenerd.materialtest, PID: 28204
        java.lang.RuntimeException: Unable to start activity ComponentInfo{net.slidenerd.materialtest/net.slidenerd.materialtest.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method) …
Run Code Online (Sandbox Code Playgroud)

java xml android android-studio material-design

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