小编Nic*_*ico的帖子

将对象从活动传递到片段

我有一个Activity用的Fragment.我只是想将一个对象传递Activity给它Fragment.

我怎么能这样做?到目前为止我见过的所有教程都是从资源中检索数据的.

编辑:

让我们更精确一点:

我的活动ListView在左侧部分有一个.单击它时,想法是Fragment在右侧部分加载.

当我输入这个时Activity,一个对象Category通过Intent.此对象包含其他对象的列表Questions(包含字符串列表).这些Questions对象显示在ListView上.当我点击其中的一个项目时ListView,我想将列表显示StringFragment(进入a ListView)中.

要做到这一点,setContentView()Activity用布局调用我的.在此布局中定义了Fragment要调用的正确类.当我调用它时setContentView(),调用onCreateView()my Fragment,但此时getArguments()返回null.

我怎么能设法在电话会议之前填写onCreateView()?(告诉我,如果我不够清楚)

谢谢

android

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

枚举案例'...'不是"......"类型的成员

我有一个枚举:

enum State {
    case FullOpen
    case HalfOpen
    case Closed
}
Run Code Online (Sandbox Code Playgroud)

而这段代码:

var stateForConversionView: State!
...


var previousState: State!

if true {
    previousState = stateForConversionView!
    switch previousState {
    case .FullOpen:
        stateForConversionView = .HalfOpen
    case .HalfOpen:
        stateForConversionView = .FullOpen
    case .Closed:
        stateForConversionView = .HalfOpen
    default:
        break
    }
}
Run Code Online (Sandbox Code Playgroud)

我在每个switch语句中都出错:

Enum case 'FullOpen' not found in type 'State!'
Enum case 'HalfOpen' not found in type 'State!'
Enum case 'Closed' not found in type 'State!'
Run Code Online (Sandbox Code Playgroud)

我真的不明白为什么.有人可以解释一下吗?

ios swift

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

无法在Interface Builder中加载IBDesignable xib

我有一个xib(childXib)文件链接到它的自定义UIViewswift文件UIView.

这是我初始化我的自定义的方式xib:

// init for IBDesignable
override init(frame: CGRect) {
    super.init(frame: frame)

    let view = loadViewFromNib()
    view.frame = bounds

    addSubview(view)
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    addSubview(loadViewFromNib())
}

func loadViewFromNib() -> UIView {

    let bundle = NSBundle(forClass: self.dynamicType)
    let nib = UINib(nibName: "CommentCellView", bundle: bundle)
    let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView

    return view
}
Run Code Online (Sandbox Code Playgroud)

当我想在另一个()中添加this childXib(xib)时,我收到以下错误:parentXibMyRootView

let view = nib.instantiateWithOwner(self, options: …
Run Code Online (Sandbox Code Playgroud)

xib ios swift ibdesignable

22
推荐指数
3
解决办法
5838
查看次数

离线时,Firebase值事件不会一直触发

我有以下路径模式:

/ID_Company/boxes/timestamp_of_the_day/ID_box
Run Code Online (Sandbox Code Playgroud)

假设我刚开始新的一天,我就离线了.就在Firebase DB上,路径/ID_Company/boxes/timestamp_of_TODAY不存在,也不存在于缓存中.

不,我在路径中添加了一个新框 /ID_Company/boxes/timestamp_of_TODAY/id_box1

如果我有一个关于childAdded事件的观察者,它将被触发.但如果我有一个关于value事件的观察者,则不会触发任何事情.

现在让我说,当我添加第一个框时,我在线.所以在firebase上这条路径/ID_Company/boxes/timestamp_of_TODAY/id_box1存在,因此它在本地运行.

它离线了.然后我添加一个新框/ID_Company/boxes/timestamp_of_TODAY/id_box2,然后'value`事件被触发,我只是不明白为什么.

为什么在timestamp_of_TODAY已经存在的情况下触发,但在不存在时触发?

谢谢你的帮助.

编辑:

以下是我添加方框的方法:

        guard let startingTimestamp = date.beginning(of: .day)?.timeIntervalSince1970 else { return nil }

        let boxRef = dbRef.child("ID_Company").child("boxes").child("\(startingTimestamp)").childByAutoId()

        var box = box
        box.id = boxRef.key

        boxRef.setValue(box.toDictionary()) { error, ref in
            if let error = error as? NSError {
                print(error)
                completion(error)
            } else {
                completion(nil)
            }
        }
Run Code Online (Sandbox Code Playgroud)

以下是我如何获得盒子:

    guard let startingTimestamp = day.beginning(of: .day)?.timeIntervalSince1970, let endingTimestamp = day.end(of: .day)?.timeIntervalSince1970 …
Run Code Online (Sandbox Code Playgroud)

ios firebase swift firebase-realtime-database

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

交互式视图控制器从视图控制器转换,状态栏隐藏

这是我的演示项目.

我有两个视图控制器.主要的状态栏隐藏,而第二个没有.

我创建了一个自定义驱动的过渡动画,从控制器1转到控制器2.

当我在子视图控制器(橙色视图)上时,我通过从上到下平移来启动驱动过渡.拖动时,您可以看到状态栏正在返回.而UIButton"你好"也在发展.

我取消了过渡.然后我再次启动它,你可以看到状态栏也回来了,但这一次,我的按钮没有移动,它停留在同一个位置,好像状态栏仍然是隐藏的.

知道为什么一旦过渡至少被取消一次就会出现这种情况吗?

(我甚至没有谈论动画的奇怪之处,取消时有点加倍(可能是模拟器的一个错误,因为它不能在我的iphone 6 9.1和我的iphone 5 8.4上进行.)

在此输入图像描述

ios swift

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

在TableLayout的列之间添加空格

我有一个TableLayout,我动态添加TableRows.在每个TableRow中,我添加一个Button.

我只是想在我的列之间添加一些空格(这是我的按钮)但我无法弄清楚如何...我试图改变所有可能的边距但它不起作用:(所以也许我做了我的代码中的错误,我从XML文件中膨胀它们:

private void createButtons(final CategoryBean parentCategory) {
    final List<CategoryBean> categoryList = parentCategory.getCategoryList();
    title.setText(parentCategory.getTitle());
    // TODO à revoir
    int i = 0;
    TableRow tr = null;
    Set<TableRow> trList = new LinkedHashSet<TableRow>();
    for (final CategoryBean category : categoryList) {

        TextView button = (TextView) inflater.inflate(R.layout.button_table_row_category, null);
        button.setText(category.getTitle());
        if (i % 2 == 0) {
            tr = (TableRow) inflater.inflate(R.layout.table_row_category, null);
            tr.addView(button);
        } else {
            tr.addView(button);
        }

        trList.add(tr);

        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                CategoryBean firstChild = category.getCategoryList() != null && …
Run Code Online (Sandbox Code Playgroud)

android divider android-tablelayout

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

加载远程映像失败后加载本地映像

如果远程图像失败,是否可以加载本地图像?

例如,我有以下代码:

<Image style={ styles.userImage }
       source={ { uri: http://example.com/my_image.jpg } }
       onError={(error) => ...}
/>
Run Code Online (Sandbox Code Playgroud)

例如,如果我没有访问权限http://example.com/my_image.jpg,我将收到错误onError.有没有办法加载本地图像?

react-native

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

如何在使用变换(缩放,旋转和平移)时合并UIImages?

我正在尝试复制Instagram的功能,你有你的照片,你可以添加贴纸(其他图像),然后保存.

所以在UIImageView我的照片上,我将贴纸(另一个UIImageView)添加到它作为子视图,位于父级的中心UIImageView.

要在图片周围移动贴纸,我使用a CGAffineTransform(我不移动中心UIImageView).我还申请CGAffineTransform旋转和缩放贴纸.

要使用贴纸保存图片,我使用CGContext如下:

    extension UIImage {
        func merge2(in rect: CGRect, with imageTuples: [(image: UIImage, viewSize: CGSize, transform: CGAffineTransform)]) -> UIImage? {
            UIGraphicsBeginImageContextWithOptions(size, false, UIScreen.main.scale)

            guard let context = UIGraphicsGetCurrentContext() else { return nil }

            draw(in: CGRect(size: size), blendMode: .normal, alpha: 1)

            // Those multiplicators are used to properly scale the transform of each sub image as the parent image (self) might be bigger than its …
Run Code Online (Sandbox Code Playgroud)

core-graphics cgcontext cgaffinetransform ios swift

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

如何正确覆盖reloadRowsAtIndexPaths:withRowAnimation?

我想在我重新加载a的行时创建一个特殊的动画UITableView.问题是我不想一直使用这个动画,因为我有时使用内置动画来重新加载行.

那我该怎么做呢?通过覆盖reloadRowsAtIndexPaths:withRowAnimation我自己的UITableView实现?怎么样?

或者也许在重新加载行时有更好的方法来获取自己的动画?

uitableview ios swift

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

核心数据NSFetchedResultsController在设备上的batchUpadate之后没有更新,但在模拟器上没问题

我有一个NSFetchedResultsController管理我的UITableView数据源.

我试图使用a 修改NSManagedObject被调用的属性.所以我创建了批量更新:amountToComputeNSBatchUpdateRequest

let batchUpdate = NSBatchUpdateRequest(entityName: "MyEntity")
batchUpdate.propertiesToUpdate = ["amountToCompute" : newAmount]
batchUpdate.resultType = .UpdatedObjectIDsResultType
Run Code Online (Sandbox Code Playgroud)

我执行它:

var batchError: NSError?
let batchResult = managedContext.executeRequest(batchUpdate, error: &batchError) as! NSBatchUpdateResult?
Run Code Online (Sandbox Code Playgroud)

为了更新我当前的托管上下文,我更新了managedContext中的每个managedObject并执行了一个新的获取fetchedResultsController:

if let result = batchResult {
    let objectIDs = result.result as! [NSManagedObjectID]

    for objectID in objectIDs {
        let managedObject: NSManagedObject = managedContext.objectWithID(objectID)

        if !managedObject.fault {
            managedContext.refreshObject(managedObject, mergeChanges: true) 
        }

        if !fetchedResultsController.performFetch(&error) {
            println("error: + \(error?.localizedDescription), \(error!.userInfo)")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我实现了委托的一些方法NSFetchedResultsControllerDelegate …

core-data nsfetchedresultscontroller ios swift

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