小编Pha*_*inh的帖子

如何在不丢失连接的情况下重命名IBOutlet属性

我使用旧项目,在项目的某些部分,命名约定不好,所以我想改变它.
例如:

@property (weak, nonatomic) IBOutlet UIButton *btnRequestCode;
rename it to -> @property (weak, nonatomic) IBOutlet UIButton *requestCodeButton;
Run Code Online (Sandbox Code Playgroud)

我知道我可以删除IBOutlet然后重新连接,但如果不小心可能需要很多时间和容易犯错误

有什么安全快捷的方法吗?

我尝试过Refactor - >重命名,但它不起作用并给我一个警告

在此输入图像描述

任何帮助或建议将非常感谢.

xcode ios

12
推荐指数
2
解决办法
2812
查看次数

当新值与上一个值相同时 StateFlow 不会发出

我有一个登录表格。我用来StateFlow发送LoginResult(调用 API 之后)从ViewModelActivity。在活动中,如果登录失败,我将显示错误对话框。
第一次运行良好,但从第二次登录失败后,错误对话框将不再显示。我测试了.value两者.emitStateFlow

private val _loginResult = MutableStateFlow(LoginResult())
val loginResult: StateFlow<LoginResult> = _loginResult

fun login(email: String, password: String) {
    viewModelScope.launch {
        when (val result = loginRepository.login(email, password)) {
            is Result.Fail-> {
                _loginResult.value = LoginResult(error = "Login failed")
                // _loginResult.emit(LoginResult(error = "Login failed")) same issue
            }
            ...
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

android kotlin kotlin-stateflow kotlin-sharedflow

12
推荐指数
1
解决办法
7159
查看次数

UITableViewAutomaticDimension在iOS8中不适用于页脚

我有一个页脚UITableView.页脚只包含一个UILabel,我想调整页脚高度取决于UILabel我有用

self.tableview.estimatedSectionFooterHeight = 140;
self.tableview.sectionFooterHeight = UITableViewAutomaticDimension;
Run Code Online (Sandbox Code Playgroud)

它在iOS9上运行良好,但在iOS8中无效 在此输入图像描述

这是我的页脚视图 在此输入图像描述UILabel有限制:top=5, leading/trailing=8, bottom=34, line=0, height >= 18

这是我的init footer的代码

- (UIView *) tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
    NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"BaseFooterViewCell" owner:self options:nil];
    BaseFooterViewCell *myFooterView = [nibViews objectAtIndex: 0];
    myFooterView.contentLabel.text = @"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a …
Run Code Online (Sandbox Code Playgroud)

uitableview ios

10
推荐指数
2
解决办法
3056
查看次数

无法更改git帐户

我尝试推送到我的存储库,但我收到了以下错误

git push origin master
remote: Permission to PhanVanLinh/phanvanlinh.github.io.git denied to edgarphan.
fatal: unable to access 'https://github.com/PhanVanLinh/phanvanlinh.github.io.git/': The requested URL returned error: 403
Run Code Online (Sandbox Code Playgroud)

之前,我使用的是用户名,edgarphan但我已将其更改为PhanVanLinh但仍保留edgarphan.我试图删除项目并再次克隆,卸载git并重新安装,但它将无法正常工作.

在此输入图像描述

全局配置文件 在此输入图像描述

我该如何解决这个问题?任何帮助或建议将非常感谢.

git window github

10
推荐指数
1
解决办法
9339
查看次数

找不到符号NOTIFICATION_SERVICE?

package com.test.app;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class runOnBoot extends BroadcastReceiver{

   @Override
   public void onReceive(Context context, Intent intent) {

          NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
   }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试构建软件包时,它说

compile:
    [javac] Compiling 2 source files to /home/mrburns/Desktop/myapp/bin/classes
    [javac] /home/mrburns/Desktop/myapp/src/com/test/app/runOnBoot.java:14: cannot find symbol
    [javac] symbol  : variable NOTIFICATION_SERVICE
    [javac] location: class runOnBoot
    [javac]           NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    [javac]                                                                                           ^
    [javac] 1 error

BUILD FAILED
Run Code Online (Sandbox Code Playgroud)

java android notificationmanager

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

XCode:如何查找所有然后删除所有禁用约束

我是iOS新手.我在我看到很多禁用约束,我Main.storyboard想删除它.但是,我Main.storyboard有很多屏幕,所以我想找到找到所有禁用约束的方法然后删除所有.
有可能Xcode吗?
或者任何防止禁用约束生成的方法.
任何帮助都会非常感激

在此输入图像描述

xcode ios

9
推荐指数
2
解决办法
324
查看次数

GoogleFit可以区分不同设备之间的数据

我正在使用GoogleFit HistoryAPI来获取用户的步骤数据.它运作良好.
但是,在我的情况下,我想区分不同设备之间的数据(使用相同的帐户),因为我不希望用户为2个或更多设备使用相同的帐户(这是一个基于步骤的游戏,所以我不想要用户在1台设备上玩,并在许多设备上取得成就).

我发现Device from DataSource#getDevice,Device#getLocalDevice可以帮助我区分不同设备之间的数据.以下是官方文档的信息:

要获取有关数据源的设备的信息,请使用DataSource.getDevice方法.设备信息可用于区分不同设备上的类似传感器,显示从传感器到用户的设备信息,或根据设备不同地处理数据.例如,您可能有兴趣专门从可穿戴设备上的传感器读取数据,而不是从手机上相同类型的传感器读取数据.

要为运行活动的设备获取Device实例,请使用Device.getLocalDevice静态方法.当您要检查数据源是否与运行应用程序的设备相同时,这非常有用.

所以,

// My idea is comparing the uid of local device and uid of device in datasource
// if it is same => step come from THIS device
// if not => step come from OTHER device
private void dumpDataSet(DataSet dataSet) {
    for (DataPoint dp : dataSet.getDataPoints()) {
        Log.i(Constant.TAG, "Origin type uid: " + dp.getOriginalDataSource().getDevice().getUid());
        Log.i(Constant.TAG, "Local device uid: " + Device.getLocalDevice(getApplicationContext()).getUid());

        ... 
     }
}
Run Code Online (Sandbox Code Playgroud)

但是,仅来自 …

android google-play-services google-fit

9
推荐指数
1
解决办法
265
查看次数

IOS:证明UILabel中的文本在UI中不起作用

我想对齐我的文本,UILabel但似乎不起作用.但是,另一个对齐是左,右,中心工作.
我正在使用XCode 7.2.我已经在模拟器和真实设备上进行了测试,但它产生了同样的问题

对齐Justify 在此输入图像描述

我的文字:

Don't worry, your data will not be sold.Don't worry,your data wills not be sold. Connecting your accounts will benefit your E score and your profile viewing experience. Don't worry, your data will not be sold.Don't worry, your data wills not be sold. Connecting your accounts will benefit your ECT score and your profile viewing experience.
Run Code Online (Sandbox Code Playgroud)

使用font:Helvetica Neue 13.0和trailing/leading:10

同样的问题,如果我在这里使用对齐来证明文本 在此输入图像描述

我不知道为什么这发生在我身上.请给我一些解决方法.任何帮助将非常感谢

xcode uilabel ios text-justify

8
推荐指数
1
解决办法
4545
查看次数

以编程方式更改约束时,Android MotionLayout 状态不会更新

我有一个非常简单的 MotionLayout,我正在尝试以编程方式更改其中一个约束的可见性,并让视图反映该更改。但是,直到我从当前状态过渡然后再回到它时,更改才会反映出来。你如何让视图根据新的约束立即更新?我试过updateState()rebuildScene()invalidate()但他们都不做任何事情。

这是视图:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.motion.widget.MotionLayout
        android:id="@+id/motion_layout"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        tools:showIn="@layout/activity_main"
        app:layoutDescription="@xml/motion_scene"
        tools:context=".MainActivity">

    <TextView
            android:id="@+id/left_to_right_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Left to right"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>

    <TextView
            android:id="@+id/top_to_bottom_text"
            android:text="Top to bottom"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>

</androidx.constraintlayout.motion.widget.MotionLayout>
Run Code Online (Sandbox Code Playgroud)

这是运动场景:

<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
             xmlns:app="http://schemas.android.com/apk/res-auto">


    <Transition
            app:constraintSetStart="@id/base"
            app:constraintSetEnd="@id/bottom">
        <OnClick
                app:targetId="@id/top_to_bottom_text">

        </OnClick>

    </Transition>

    <Transition
            app:constraintSetStart="@id/base"
            app:constraintSetEnd="@id/right">
        <OnSwipe
                app:dragDirection="dragRight"
                app:touchAnchorId="@id/left_to_right_text"
                app:touchAnchorSide="right">

        </OnSwipe>

    </Transition>


    <ConstraintSet android:id="@+id/base">

        <Constraint
                android:id="@id/left_to_right_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintTop_toTopOf="parent"/>

        <Constraint
                android:id="@id/top_to_bottom_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android android-motionlayout

8
推荐指数
1
解决办法
5038
查看次数

PopupWindow位于某些设备的状态栏之上

这是我的代码show a PopupWindow

View rootView = activity.getWindow().getDecorView().getRootView();
mPopupWindow.showAtLocation(rootView, Gravity.NO_GRAVITY, 0, 0);
Run Code Online (Sandbox Code Playgroud)

当我测试它时Samsung,Nexus它显示在状态栏下面的设备
但是当我在Sony设备上测试时它显示在状态栏上方(如下图所示)

那么哪个设备显示正确或我做错了什么?任何帮助或建议将非常感谢

在此输入图像描述

android sony popupwindow nexus-s

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