小编ben*_*lis的帖子

Actionbarsherlock - 更改操作栏线条颜色

我目前正致力于通过actionbarsherlock使我的应用程序与3.0之前的设备兼容.我的应用程序有一个自定义主题,覆盖Holo.light将蓝色变为橙色.

我想将操作栏下方出现的蓝线更改为橙色.通过官方操作栏,我通过覆盖来管理它

    <item name="android:background">@drawable/ad_tab_unselected_holo</item>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎没有在actionbarsherlock 4中起作用.

android android-theme actionbarsherlock android-styles

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

Android:管理无广告和广告支持版本.转向应用内购买?

我目前有一个Android应用程序,分为两个应用程序,一个广告支持版本和一个无广告版本.广告支持版本拥有超过10,000个用户,而无广告版本拥有数百个用户.目前这两个项目完全独立,使更新成为一项相当繁琐的工作.理想情况下,我想更新一个项目并构建能够构建两个版本.在线查看后,我有两个选择:

  1. 创建一个包含大多数类文件的库,然后只为这两个版本扩展它(仅更改不同的文件).由于项目相当大,这可能是一项艰巨的任务,可能会引起一些严重的问题.

  2. 只需发布一个版本并使用应用内购买即可删除广告.这似乎是最简单的路线,但如何让我现有的无广告用户通过应用内购买移除广告而无需付费?

希望有人之前处于类似的困境,可以指出我正确的方向.

android in-app-purchase android-library

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

即使在指定 Bundle 时,在 IBDesignable 视图中使用资产目录中的命名颜色也会使 IB 崩溃

当引用使用UIColor(named:)Interface Builder创建的颜色时,由于颜色为 nil,它会崩溃。

最初我认为这是因为 IB 在错误的包中寻找颜色,但在指定要在 IB 中查找的包后仍然找不到颜色。

这在设备/模拟器上运行时运行良好。

extension UIColor {

    // MARK: - Oranges
    static let tangerine = UIColor(named: "Tangerine", in: Bundle(for: AppDelegate.self), compatibleWith: nil)!
    .....
}
Run Code Online (Sandbox Code Playgroud)

再深入研究一下,IB 所查看的 Bundle 似乎包含对颜色和图像的引用,因此您希望它能够工作..?

po Bundle(for: AppDelegate.self)
NSBundle </Users/me/Library/Developer/Xcode/DerivedData/MyApp-ddspmruccrhrxhbawgwawhzkrrts/Build/Intermediates.noindex/IBDesignables/Products/Debug - DEV-iphonesimulator/MyApp.app> (loaded)`
Run Code Online (Sandbox Code Playgroud)

xcrun --sdk iphoneos assetutil --info pathToAsserts.car

  {
"AssetType" : "Color",
"Color components" : [
  1,
  1,
  1,
  1
],
"Colorspace" : "srgb",
"Idiom" : "universal",
"Name" : "Marmalade",
"Scale" : 1
},
{
"AssetType" : "Image",
"BitsPerComponent" …
Run Code Online (Sandbox Code Playgroud)

interface-builder uicolor ios swift ibdesignable

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

SwiftUI 在 watchOS 上使用 NavigationLinks 列出性能下降

我有一个包含大约 20 个元素的小列表。列表中的每一行都是一个简单的自定义视图,其中有几个标签嵌入在 NavigationLink 中。

struct RunList: View {
    var model: RunModel
    var body: some View {
        List {
            ForEach(model.runs) { run in
//                NavigationLink(destination: RunOverview(run: run)) {. ** seems to have biggest impact on performance. 
                    RunCell(run: run).frame(height: 100)
//                }
            }
        }
        .listStyle(CarouselListStyle())
        .navigationBarTitle(Text("Demo App"))
    }
}
Run Code Online (Sandbox Code Playgroud)

滚动时使用大量 CPU 在 Apple Watch 上运行这个简单的列表会导致丢帧。

当每个列表项都有一个 NavigationLink 作为根视图时,性能似乎明显更差。删除导航链接最多可将 CPU 使用率降低 50%,并极大地提高 Apple Watch Series 2 的性能,但我们需要列表行可点击。

我正在构建的应用程序在布局上与 Apple 制作的 PopQuiz 演示应用程序非常相似https://developer.apple.com/documentation/watchkit/creating_a_watchos_app_with_swiftui

运行上面的示例代码也会出现同样的问题。

我已经在仪器中对其进行了分析,大部分时间似乎都在与布局相关的代码中。

在此处输入图片说明

我很欣赏 Apple Watch 2 现在已经相当老了,但肯定像上面这样的基本列表应该能够运行。设备上的其他系统应用程序运行良好,尽管它们不太可能使用 swiftUI。

我应该注意提示或陷阱吗?

ios swift watchkit swiftui

6
推荐指数
2
解决办法
1356
查看次数

Android StackWidget无法绑定

我目前正在尝试向我的应用程序添加一个小部件,并将我的实现基于此代码http://developer.android.com/resources/samples/StackWidget/index.html

我已将所有与堆栈小部件相关的类放在我的主包中的自己的包中.包setyp

当我尝试添加小部件时,它无法绑定,因此不显示卡(它只是声明默认文本"这是空视图")

以下是我的清单.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.bencallis.dealpad" android:versionCode="1"
    android:versionName="1.0">

    <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="14" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application android:icon="@drawable/ic_launcher"
        android:logo="@drawable/logo" android:theme="@style/DealPadTheme"
        android:hardwareAccelerated="true" android:uiOptions="splitActionBarWhenNarrow">
        <activity android:label="@string/app_name" android:name=".DealPadActivity"
            android:configChanges="keyboardHidden|orientation|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".SettingsActivity" />
        <activity android:name="com.google.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />


        <!-- Widgets -->
        <receiver android:name=".stackwidget.StackWidgetProvider">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data android:name="android.appwidget.provider"
                android:resource="@xml/stackwidgetinfo" />
        </receiver>

        <service android:name="stackwidget.StackWidgetService"
            android:permission="android.permission.BIND_REMOTEVIEWS"
            android:exported="false" />


    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

错误信息:

E/RemoteViewsAdapterServiceConnection(474): bind(): Unknown component ComponentInfo{com.bencallis.dealpad/com.bencallis.dealpad.stackwidget.StackWidgetService} …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-3.0-honeycomb android-4.0-ice-cream-sandwich

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

ActionbarSherlock - 横向无响应的选项卡

我目前正在向我移植我的应用程序,使其在3.0之前的设备上使用actionbarsherlock.

如果用户以纵向模式启动应用程序,然后旋转屏幕并尝试选择选项卡,则在用户执行其他操作之前不会发生任何操作.执行此操作的当前版本可以在此处下载(sherlock-alpha1) http://tinyurl.com/cz95nup.

选项卡按以下方式添加

        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        bar.addTab(bar.newTab().setText("tab1").setTabListener(this),false);
        bar.addTab(bar.newTab().setText("tab2").setTabListener(this),false);
        bar.addTab(bar.newTab().setText("tab3").setTabListener(this),false);
Run Code Online (Sandbox Code Playgroud)

如果以横向方式启动应用程序,然后在纵向模式下使用它(纵向选项卡将不起作用),也会发生这种情况.

它在运行本机操作栏的设备上运行正常.

android android-layout actionbarsherlock android-actionbar

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

尽管在恢复应用程序时某些项目已添加到适配器,但ListView为空

我在市场上有一个应用程序,我似乎无法解决这个问题.今天我跟踪了以下方法.

public void updateDealList(ArrayList<Deal> deals) {
    // first call or showing bookmakrs (also gets called other times when adapter is null)
    if (dealListAdapter == null || showingBookmarks || !dealListAdapter.moreDealsToDownload()) { 
        dealListAdapter = new EndlessDealListAdapter(getActivity(),
                R.layout.deal_list_item, deals);
        setListAdapter(dealListAdapter);
        listView = getListView();
        if (getActivity().findViewById(R.id.right_fragment_container)!=null){ // if tablet
            listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
            listView.setVerticalScrollbarPosition(View.SCROLLBAR_POSITION_LEFT);
        }
        showingBookmarks=false;
        Log.d("UPDATE_DEAL_LIST", "Notified list  created new" + dealListAdapter.getCount());
        return; //PROBLEM OCCURS WHEN APP COMES IN HERE AFTER RESUMING
    }
    dealListAdapter.getDealListAdapter().clear();
    for (Deal d: deals){
        dealListAdapter.getDealListAdapter().add(d);
        Log.d("UPDATE_DEAL_LIST", "added " + d.title);
    }
    dealListAdapter.notifyDataSetChanged(); …
Run Code Online (Sandbox Code Playgroud)

android android-listview android-adapter android-listfragment

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

为测试目标/单元测试文件禁用一些 SwiftLint 规则

我希望为我的应用程序中的单元测试禁用几个 SwiftLint 规则。

例如,我想禁用weak_delegate单元测试的规则。

查看了 SwiftLint 文档后,我认为可以通过定义自定义的 weak_delegate 规则并排除单元测试的路径来实现。

https://github.com/realm/SwiftLint#defining-custom-rules

unit-testing xctest swift swiftlint

5
推荐指数
3
解决办法
5135
查看次数

SwiftUI - 如何创建高性能的逐帧动画图像视图?

语境

我正在将 Apple Watch 应用程序从 WatchKit 转换为 SwiftUI。

该应用程序利用动画WKInterfaceImage以高性能的方式循环显示一系列图像。

该应用程序有 16 张图像的序列,这些图像在 0.66 秒内循环播放。图像是小 png(~8kb 256 x 256 像素)。

可以在此处找到资产目录中图像的完整 zip 文件。

方法

为此,我创建了一个简单的FrameAnimatedImageView如下:

struct FrameAnimatedImageView: View{
    
    let imageName: String
    let frameCount: Int
    let duration: TimeInterval

    @State private var currentFrameIndex: Int
    
    private var currentImageName: String {
        "\(imageName)\(currentFrameIndex)"
    }
    
    @State private var timer: Timer?
    
    init(imageName: String, frameCount: Int, duration: TimeInterval) {
        self.imageName = imageName
        self.frameCount = frameCount
        self.duration = duration
        
        self.currentFrameIndex = 0
    }
    
    var body: …
Run Code Online (Sandbox Code Playgroud)

ios swift apple-watch watchkit swiftui

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

iOS:通过电子邮件,短信或Facebook邀请朋友

我想在我的应用程序中添加一个邀请朋友屏幕.理想情况下,我想通过电子邮件,短信或Facebook支持邀请(类似于路径).

邀请将只是通知用户应用程序存在的消息以及指向App Store的链接以进行下载.

有没有一个开源库可以做这样的事情?另外,任何人都可以推荐任何有用的教程吗?

路径

P

iphone facebook ipad ios

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