小编Muh*_*rif的帖子

ViewWithTag:首次在UITableViewCell上返回nil

当第一次从Storyboard通过dequeueReusableCellWithIdentifier 加载UITableViewCell时 :viewWithTag:返回nil对象.但是在第二次和下次重新加载时,它返回正确的对象.

我的tableView嵌入了原型单元格的UIViewController(在Storyboard中)

cellAttachment = [_tableView dequeueReusableCellWithIdentifier:@"cellAttachment"];
UIButton *btnAttachment = nil;
btnAttachment = (UIButton*)[cellAttachment viewWithTag:10];
Run Code Online (Sandbox Code Playgroud)

当第一次加载cellAttachment时,btnAttachment为零.在下次重新加载时,btnAttachment会正确返回.

Cell View层次结构首先加载

(lldb) po [cellAttachment recursiveDescription]
<UITableViewCell: 0x7fd3e611cc20; frame = (0 0; 0 0); layer = <CALayer: 0x7fd3e611be00>>
   | <UITableViewCellContentView: 0x7fd3e3fc9850; frame = (0 0; 0 0); clipsToBounds = YES; opaque = NO; gestureRecognizers = <NSArray: 0x7fd3e611b6a0>; layer = <CALayer: 0x7fd3e611bd00>>
   | <_UITableViewCellSeparatorView: 0x7fd3e611cf20; frame = (0 -1; 15 1); layer = …
Run Code Online (Sandbox Code Playgroud)

objective-c uitableview ios

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

Urban Airship在起飞时坠毁.非法论证例外

我的代码在Applicaion.onCreate中.应用程序在UAirship.takeoff(this,options);请求帮助时崩溃.

public class LiveVideoApplication extends Application {
    @Override
    public void onCreate() {

        super.onCreate();

        AirshipConfigOptions options = AirshipConfigOptions.loadDefaultOptions(this);

        // Optionally, customize your config at runtime:
        //
        options.inProduction = false;
        options.developmentAppKey = "key.. ";
        options.developmentAppSecret = "secret..";

        UAirship.takeOff(this, options);
        PushManager.shared().setIntentReceiver(IntentReceiver.class);
        Logger.logLevel = Log.VERBOSE;

        //use CustomPushNotificationBuilder to specify a custom layout
        CustomPushNotificationBuilder nb = new CustomPushNotificationBuilder();

        nb.statusBarIconDrawableId = R.drawable.icon_small;//custom status bar icon
//
        nb.layout = R.layout.notification;
        nb.layoutIconDrawableId = R.drawable.icon;//custom layout icon
        nb.layoutIconId = R.id.icon;
        nb.layoutSubjectId = R.id.subject;
        nb.layoutMessageId = R.id.message;

        // …
Run Code Online (Sandbox Code Playgroud)

android push-notification urbanairship.com

3
推荐指数
2
解决办法
2710
查看次数

检索wifi连接状态(Android)

我已按照以下链接连接本地wifi.它工作得很完美.我能够连接到我当地的wifi.

但是,我真的想要wifi的当前状态,我使用以下代码来获取wifi的状态.但不幸的是,我只能获得'禁用','启用'和'扫描'状态,我真的想接收其他中间状态.

你能告诉我我做错了吗?

public class ConnectionChangeReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
        Message msg = new Message();
        msg.what = 5;
        Bundle b = new Bundle();
        String sStatus = "UnKnown";
        switch(info.getDetailedState()){
        case AUTHENTICATING:
            sStatus = "Authenticating...";
            break;
        case    CONNECTED:
            sStatus = "Connected";
            break;
        case    CONNECTING:
            sStatus = "Connecting...";
            break;
        case    DISCONNECTED:
            sStatus = "Disconnected";
            break;
        case    DISCONNECTING:
            sStatus = "Disconnecting...";
            break;
        case    FAILED:
            sStatus = "Failed";
            break;
        case    IDLE:
            sStatus …
Run Code Online (Sandbox Code Playgroud)

java android wifi

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

没有足够的空间来显示Admob广告错误

这不是一个新的错误,但没有一个在线答案看起来更适合我,请帮助我解决这个问题.我在我的申请中加入了Admob.它正在完美地在一些屏幕上工作,但在另一些屏幕上却无法正常工作.当我查看日志时,它说.

Not enough space to show ad! Wants: <480, 75>, Has: <464, 762>
Run Code Online (Sandbox Code Playgroud)

我想知道有一种简单的方法可以在所有屏幕尺寸上显示广告并避免此类错误.

我的XML代码如下.

<com.google.ads.AdView
    android:id="@+id/adView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="ADMOB_PUBLISHER_ID"
    ads:loadAdOnCreate="true" />
Run Code Online (Sandbox Code Playgroud)

我已经提供了Internet和Access网络状态的权限.

android admob

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

如何在 OS X 上的 CALayer 上获得平滑/清晰的文本

使用 Cocoa (OS X) 绘制的文本CALayer显示为CATextLayer颗粒状。必须使用什么方法/途径才能使文本清晰/清晰?

我很高兴文本有不透明的背景支持- 我知道如果需要透明,问题会更加复杂。

我无法使用NSView 派生实例(如 NSTextField)来表示解决方案中的文本 - 我使用 CALayer 因为它更轻量级。

编辑

我正在根据以下评论使用我尝试过的代码进行更新:

以下是一个自定义 CATextLayer 类,其中背景颜色在与文本组合之前被预设为不透明,以便可以发生子像素抗锯齿:

class TextLayer: CATextLayer {

    override func drawInContext(ctx: CGContext!) {

        CGContextSaveGState(ctx)

        CGContextSetRGBFillColor (ctx, 1, 1, 1, 1)
        CGContextFillRect (ctx, self.bounds)
        CGContextSetShouldSmoothFonts (ctx, true)
        super.drawInContext(ctx)

        CGContextSaveGState(ctx)
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,在自定义视图中使用此自定义派生 CATextLayer,如下所示:

    override func awakeFromNib() {

    self.wantsLayer = true
    var backingLayer = self.layer
    var textLayer = TextLayer()
    textLayer.string = "ABC"
    textLayer.fontSize = 16
    textLayer.foregroundColor = NSColor.blackColor().CGColor
    textLayer.frame = …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c calayer swift

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

IOS ARC:无法直接使用#define常量

我的MyClass.m文件中有一个常量,名为:

#define kUDUserHistory              @"kUDUserHistory";
Run Code Online (Sandbox Code Playgroud)

没有ARC,我可以直接使用它,但现在我必须将它复制到第二个变量然后使用它.如果我尝试直接在ARC中使用它,则会显示错误"预期表达式".
无弧

[[NSUserDefaults standardUserDefaults] setObject:data forKey:kUDUserHistory];
Run Code Online (Sandbox Code Playgroud)


NSString *key = kUDUserHistory;
[[NSUserDefaults standardUserDefaults] setObject:data forKey:key];
Run Code Online (Sandbox Code Playgroud)

我的具体问题是:

  • 在这种情况下,我无法直接使用常量?
  • 管理常量的最佳方法是什么,特别是在ARC中?

constants ios

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